2010-10-28

aapt memo

ant debug したときに実行される aapt
(Android SDK Tools Revision 7, Project Target: Android 2.2, API level: 8, tools/ant/ant_rules_r3.xml)

-resource-src で

aapt \
    package \
    -f \
    -m \
    -M [PROJ_DIR]/AndroidManifest.xml \
    -S [PROJ_DIR]/res \
    -I [SDK_DIR]/platforms/android-8/android.jar \
    -J [PROJ_DIR]/gen

-package-resources で

aapt \
    package \
    -f \
    -M [PROJ_DIR]/AndroidManifest.xml \
    -S [PROJ_DIR]/res \
    -I [SDK_DIR]/platforms/android-8/android.jar \
    -F [PROJ_DIR]/bin/MyActivity.ap_

aapt の source は mydroid/frameworks/base/tools/aapt/ 以下。
tools/lib/anttasks.jar の source は mydroid/sdk/anttasks/ 以下。

aapt package で res 以下の resource から gen 以下の R.java が生成されます。 resource ID は 0x7f000000 (127 << 24) 以降。 aapt package に -x を渡せば 0x02000000 (2 << 24) 以降からになるようです。

ですが、 android-sdk で用意されている rule.xml だとか anttasks.jar を使っていると aapt に -x を渡すことはできないのかも?

2010-07-03

Froyo で Apps2SD

Froyo で、アプリを SD card にインストール (あるいはインストール後に移動) できるようになったけど (いわゆる Apps2SD) 、何もしなくてもこれが可能になるわけではないわけです。

というわけで、ぶりーふですくりぷしょんな備忘録。


手順その一

AndroidManifest.xml の <manifest> に android:installLocation という attribute を追加する。取りうる値は、以下の通り。

auto
システムにおまかせ
internalOnly
内部ストレージ (一般的には携帯電話本体) にのみインストール可能に
preferExternal
外部ストレージ (一般的には SD card) を希望。駄目なときは内部ストレージに。

通常は、 auto で良いのではないかしら。 (参考: android.R.attr#installLocation, <manifest>)

手順その二

android:installLocation という attribute は API Level 8 じゃないと「シラネーヨ」って言われるので、 build target API level を 8 (あるいはそれ以上) に変更。 <uses-sdk minSdkVersion=""> はもとのままで。

手順おわり


SD card に移したアプリは、 SD card が unmount されると死んじゃう。というわけで、どんなアプリでも SD card に移せるわけじゃ無い点に注意。

詳しくは、 Dev Guide の "App Install Location" あたり参照。

2010-03-30

User Agent List (Android Web Browser)

android の browser の user agent を収集してみる。といっても、現状は手持ちの物中心だけど。
  1. Mozilla/5.0 (Linux; U; Android 1.5; ja-jp; HT-03A Build/CDB72) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
  2. Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; Docomo HT-03A Build/DRD08) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
  3. Mozilla/5.0 (Linux; U; Android 2.0.1; en-us; Droid Build/ESD56) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
  4. Mozilla/5.0 (Linux; U; Android 2.1; ja-jp; Nexus One Build/ERD79) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
  5. Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; Nexus One Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
  6. Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEricssonSO-01B Build/R1EA018) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1