ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

Android

ファイルを分割するAndroidアプリ

SDカード内のファイルを2, 3MBくらいに分割したくて作った。 エクスプローラ系のアプリから共有 -> FileDiv で起動する。

repoスクリプトのmagic

Androidのrepoスクリプトの先頭の magic='--calling-python-from-/bin/sh' """exec" python -E "$0" "$@" """#$magic" ってなんだと思ったら、メーリングリストで見つけた。 http://groups.google.com/group/repo-discuss/browse_thread/thread/f82f61b66964…

Featureの一覧を表示するアプリ

ExpandableListの勉強を兼ねてFeatureInfoの一覧を表示するアプリを作ってみた。 https://github.com/ikautak/FeatureViewer FeatureInfoはPackageManagerから取得できる。 Mapが入ったListを作ってListに登録って戸惑う。

tar --excludeオプション

--excludeで、特定のファイルを除いてtarで固めることができる。 tar czvf xxx.tar.gz --exclude ".repo" ./xxx androidのソースをgitとrepoを除いてtarで固めるときに便利だった。

バッテリー情報テキストを更新

テキストの色の設定を、バッテリー情報スクエアと同じような↑のダイアログに変更した。 https://market.android.com/details?id=com.exiashio.BatteryStatusText&feature=search_result 以前の色の設定と後方互換性を持たせるためにいろいろと変な修正が増え…

バッテリー情報テキストのソースコードを公開

バッテリー情報テキストのソースコードを公開した。 https://github.com/ikautak/BatteryStatusText AppWidgetを始めて実装したアプリで、拙い点があるかもしれないが、これからAppWidgetを作る人の参考になればうれしい。 このアプリはBatteryManagerからバ…

startActivityの深層 後編

前回のつづき android.os.ProcessクラスのzygoteSendArgsAndGetPid()でsocketにいろいろwriteすると、pidがreadできる。 socketのreadをしているプロセスがいて、それがforkしてpidを返している。 アプリのプロセスの親プロセスはzygote emulatorを起動してa…

startActivityの深層 前編

android-2.3.1_r1のソースコードを、Activity.startActivity()からアプリが起動するまでを追いかけてみる。 Activity startActivity() ↓ startActivityForResult() ↓ Instrumentation execStartActivity() ↓ IActivityManager startActivity() // BinderでIP…

Featureの一覧を取得する

AndroidMarketは、アプリケーションのAndroidManifest.xmlの<uses-feature>をチェックして、そのfeatureがない端末からはアプリが見えないようにフィルターするらしい。 <uses-feature android:name="android.hardware.camera"> と書くと、カメラなしの端末からはマーケットで見えなくなる。 featureの一覧はPackageManagerから取</uses-feature></uses-feature>…

Android Walkerの紹介記事

Android WalkerさんにBatteryStatusTextを紹介してもらった。 http://android-walker.com/?p=4714 勇気りんりんって何だろう:)

RemoteViewsの仕組み

AppWidgetProviderで使っているRemoteViewsクラスの仕組みについて調べてみた。 Widgetは、表示領域を提供するAppWidgetHost(大抵はホームアプリ)に、部品を提供するAppWidgetProviderから表示情報を送る形で構成されている。 ホームアプリとAppWidgetProv…

xperiaのroot化

マルチタッチ対応のアップデート後、z4rootではrootになれないらしい。 いくつか方法があるみたいだが、自分の場合はSuperOneClickでうまくいった。 ・SuperOneClickのダウンロード http://forum.xda-developers.com/showthread.php?t=803682 ここからダウン…

バッテリー情報スクエアをアップデート

今まで色の選択はSpinnerで、選択肢が少なかったが、凝ったUIを作ってARGBのSeekBarにした。 ApiDemosのColorPickerも考えたけど、SeekBarの方がいじってて楽しい。 その代わり、ListPreferenceからカスタムViewになったため、設定が引き継げなかった。。

アプリのアップデート

EnglishWordSearchを起動時にキーボードが表示されるように修正した。 普通のActivityは起動時にEditTextにフォーカスがあればキーボードが表示される気がするが、 透過にしたりandroid:backgroundで背景の画像を変えたりしたせいなのか表示されなかった。 o…

バッテリー情報スクエア

バッテリー情報テキストの仕組みを活かして、バッテリーの残量を四角で示すアプリを作った。 http://www.androidzoom.com/android_themes/themes/battery-status-square_qbtg.html RemoteViews.setImageViewBitmap()を使うと、その度に内部のリストにオブジ…

アプリ更新&エミュレータの電池

バッテリー情報テキストを更新した。 http://www.androidzoom.com/android_applications/tools/batterystatustext_ntza.html 1x2サイズのウィジットでも、レイアウトは1x1と同じxmlが使用できる。 AndroidManifest.xmlで指定する、ウィジットのサイズを記述…

紹介記事

アプリを紹介してもらった。 アンドロイダー http://androider.jp/?p=25410 バッテリー情報テキストを紹介してくれました。 フィンランドの人から、フィンランド語の翻訳を提案してもらってxmlファイルを書いてもらったけど、どうしてもウムラウト?が化けて…

バッテリー情報テキストを更新

テキストサイズが変わらないという指摘があったので、サイズ変更のUIをSeekBarに変更した。 おそらくサイズが変わらないのは数値をあまり変更しなかったからだと思うが、今度のUIは文字の大きさを見ながら設定できるので、勘違いもないはず。 SeekBar + Dial…

EditTextの入力制限

EditTextに数字だけを入力させるように制限するには、setFiltersを使う。 2桁に制限したい場合 EditText editText = (EditText) findViewById(R.id.edit_text); editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(2)}); 数値だけに制限…

Serviceの再起動&アプリ更新

バッテリー情報テキストはwidgetが更新されないことがあるみたいで調べていたら、Serviceは勝手に再起動するらしい。 http://xfutures.jp/2009/07/05/50/ しかも再起動後は別プロセスでonCreateだけが呼ばれる。 そういうケースに心当たりがあったので実験的…

マーケットのコメント

英単語検索のマーケットのコメントで、広告が邪魔で見えないと書いた人がいた。 このアプリは広告は入れてないので、ブラウザの表示設定の問題じゃないだろうか。。。

アプリ更新

バッテリー情報テキストを更新。 テキストの色で、ダークグレイとライトグレーが選択できないエラーを修正した。 設定のデフォルト値をいじったので、一度アンインストールなりしないとエラーが改善しないかもしれない。 ウィジットをタッチしたときのPendin…

バッテリー情報テキスト

バッテリー情報を表示するウィジットはたくさんあるが、自由なテキストを設定できるものが見当たらなかったため、自作した。 http://www.androidzoom.com/android_applications/tools/batterystatustext_ntza.html AppWidgetProviderはIntentを受信する度に…

バッテリー情報の取得

バッテリー情報の取得するには、ACTION_BATTERY_CHANGEDのIntentを受け取るBroadcastReceiverを使う。 BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { } } @Overrid…

repoでブランチ・タグを指定

repoを使ってAndroidのソースコードを取得するとき、-bでブランチ・タグ名が指定できる。 repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.2_r1.3 repo sync masterがビルドできないと思ったら、64bitしかサポートしなくなっ…

英単語検索をver.1.2にアップデート

ソフトキーボードのEnterキーでも検索を開始するよう修正した。 ボタンを押さなくても、キーボードの操作だけで使える。 起動時にキーボードが自動で表示されるようにしたいが、InputMethodManagerをgetSystemService()で取得すると、起動がもたつく気がする…

英単語検索をアップデート

version 1.1 音声入力に対応した。 RecognizerIntent.ACTION_RECOGNIZE_SPEECH のIntentを投げるだけで、あらかじめフレームワークに用意されているActivityが起動してすべてやってくれるため、アプリケーションでやることはほとんどない。 ブラックボックス…

インストールされているアプリケーションの一覧を取得

PackageManagerのqueryIntentActivities()でResolveInfoのListを取れる Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); PackageManager manager = getPackageManager(); final List<ResolveInfo> apps = </resolveinfo>…

メール送信Intentのサンプル

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent .setType("plain/text"); emailIntent .putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"xxx@xxx.xxx"}); emailIntent .putExtra(android.content.In…

Activityを透過にする

Activityを透過にするには、AndroidManifest.xmlのActivityタグに android:theme="@android:style/Theme.Translucent.NoTitleBar" を付ける。 <activity android:name=".EijiroSearch" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar"> <intent-filter> </intent-filter></activity>

マーケットのコメント

マーケットのコメントで、twitter連携の使い道について書かれていた(汗) 元々は辞書を引いた単語を、後でsmart.fmで復習出来るようにしたかったが、APIが非公開になってしまって諦めた。 また公開されたらsmart.fmと連携したい。

英単語検索

Twitter APIとTwitter4jの勉強を兼ねて、アプリを作った。 英単語検索 http://jp.androlib.com/android.application.com-exiashio-eijirosearch-qmqzB.aspx キーワードを入力すると、英和・和英のオンライン辞書である、英辞郎 on the webのサイトにジャンプ…

Android デベロッパーコンソール

Androidのアプリケーションやプラットフォームについて書いていこうと思う。 Androidのアプリケーションをマーケットで公開するためには、マーケットに開発者として登録する必要がある。 登録費用として25ドルかかる。 google checkoutで払ったが現在登録待…