2011-01-01から1年間の記事一覧

シェルスクリプトの中で変数を使ってsedで文字列置換したい

Javaソースコードのpackageを一発で切り替えたかったのでシェルスクリプトを組んでみた。最初以下のようにしたら当然のことながら$varにそのまま置換され(カッコ笑い) #!/bin/sh var=testapp1 find . -type f -a -name '*.java' | xargs sed -i -e 's/com\…

native heapのメモリリークを調べたいとき

DDMSでnativeのallocateされたサイズと回数を見ることができます。 freeが行われると、回数カウントはちゃんとデクリメントされるようなので、ある操作をし続けてカウントがどんどん増えていく奴がリークの可能性大ということですね。まず、ターゲット端末の…

ファイルやディレクトリだけのパーミッションを変更したいとき

Windows 7 + cygwinのsedでファイルを置換したりするとファイルのパーミッションが壊れる問題が発生したのだが、対処方法がわからないので事後に以下をやることにした。ファイルの場合 find . -type f -print | xargs chmod 644 ディレクトリの場合 find . -…

AndroidのBuildでccacheを使う方法

export USE_CCACHE=1 メモリが沢山ある場合は設定を変更する $ prebuilt/linux-x86/ccache/ccache -M 10G ついでにビルド時間を計るといいですね。 time make -j2 2>&1 | tee makelog.txt 実際に効いているかどうかをチェック $ prebuilt/linux-x86/ccache/c…

Android Source Build環境でapk内にlibを置きたい時のmakefile

Eclipseでネイティブライブラリをapkに組み込んで使うにはlibs/armeabiに置いておけば自動的に組み込んでくれるが、Android Source Code Build環境ではそうはいかないのでどうしたらいいのか調べてみた。例えばlibs/armeabi/libtest.soをapkに入れたい場合An…

SVNでエラー「locked; try performing」

なにかの拍子にlockファイルが残ったために起こるらしい。 lockファイルを探して削除してcleanupすれば復活するリファレンス http://d.hatena.ne.jp/surume000/20090118

リソース定義のXMLでエスケープする文字

リソース定義のXMLでURLの&で怒られたり怒られなかったりとか"can't"の'が表示されたりされなかったりということの整理NGパターン(Eclipseビルド時に怒られる) <string-array name="url_data_list"> <item>http://test.com/test.cgi?param1=1&param2=0</item> </string-array>OKパターン <string-array name="url_data_list"> <item>http://test.com/test.cgi?param1=</item></string-array>…

アプリからshellコマンドを実行する

こうやるんですね。参考になりました。 public void test() { try { Process p = Runtime.getRuntime().exec("su"); DataOutputStream dos = new DataOutputStream(p.getOutputStream()); dos.writeBytes("input keyevent 20\n"); // 押す dos.writeBytes("e…

ネイティブライブラリのロード時に注意すること

例えば、libtest.soをロードしたい時、 System.loadLibrary("test"); とするのが一般的だが、もし/system/libと/data/data/(パッケージ名)/libとの両方に同じ名前のlibtest.soが存在したとき、/system/libが優先になり(機種依存?)、本来パッケージ内のlib…

layout_widthに画面の半分を指定する

タイトル通りやろうとして、試しに android:layout_width="50%"とか、"half"とかやってみたがやはりダメ。ちゃんと調べてみたら、こんなやり方が。 layout_widthは0にしてlayout_weightを使うんですね。すると以下のようにすると… このようになる。参照 http…

Xperia 2.1でカメラアプリ起動して画像データ取得

カメラアプリを起動して撮影した画像の保存先を、こちらから指定したファイルにする場合、以下が一般的だが、Xperia2.1版などのカメラアプリは指定したファイルには書き込まれず、通用しないものがある。 public static final int REQUEST_CAMERA = 1; File …

WidgetのIntent.putExtraについて

Widgetで簡易ランチャを作ってみたが、いくつかの異なるViewをクリックするとそれぞれ異なったパラメータを渡したいのにうまくいかない。9個のViewに対してそれぞれIntentを作成して、putExtraでパラメータを設定してServiceに飛ばすという感じを最初以下の…

twitter4jを使用したAndroid Twitterアプリケーション作成

ここで説明している仕組みを使って、Camera2Tweetというアプリを公開しました。 https://market.android.com/details?id=com.yujimny.android.c2ttwitter4jは2.1.12を使用アプリを作る上でユーザ認証が一番の課題だが、Twitterは現在Basic認証を許していない…

システム起動時に常駐するサービスを作成する

システム起動時にはACTION_BOOT_COMPLETEDがブロードキャストで飛んで来るので、まずそれを受けるクラスを作成する。 public class FooBarServiceReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { …

logcat read: Invalid argument

EclipseのLogCatタブに以下のようなメッセージが。 logcat read: Invalid argumentこうすれば良いらしいです。 adb logcat -c そしてEclipseを再起動参考 http://www.android-navi.com/archives/android_1/logcat/#more

android:launchModeの意味

ActivityのonNewIntent()が呼ばれない罠にはまって行き着いたのがこれなのだが、いまいちよくわからない。やりたいことは、ブラウザからアプリにリダイレクトさせてサーバからのデータを取りたい。現状試したことは、 android:launchMode属性を書かない、も…