Androidの開発環境をLinux上に構築(2)

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

今度は、

% uname -a
Linux prime 2.6.32-5-amd64 #1 SMP Wed Aug 25 13:59:41 UTC 2010 x86_64 GNU/Linux
% cat /etc/debian_version
squeeze/sid

なPhysicalMachine環境へAndroid SDKをインストールしていて少々ハマる。

まず、エミュレータが起動しない

% tools/emulator @JNDK01 -qemu --cpu cortex-a8
SDL init failure, reason is: No available video device

サッパリ分からないのでstrace。

% strace tools/emulator @JNDK01 -qemu --cpu cortex-a8
execve("tools/emulator", ["tools/emulator", "@JNDK01", "-qemu", "--cpu", "cortex-a8"], [/* 19 va                                                           rs */]) = 0
[ Process PID=28330 runs in 32 bit mode. ]
brk(0)                                  = 0x92c2000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff76fc000
・・・
open("/lib32/tls/i686/sse2/cmov/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/tls/i686/sse2/cmov", 0xffe534b4) = -1 ENOENT (No such file or directory)
open("/lib32/tls/i686/sse2/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/tls/i686/sse2", 0xffe534b4) = -1 ENOENT (No such file or directory)
open("/lib32/tls/i686/cmov/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/tls/i686/cmov", 0xffe534b4) = -1 ENOENT (No such file or directory)
open("/lib32/tls/i686/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/tls/i686", 0xffe534b4)   = -1 ENOENT (No such file or directory)
open("/lib32/tls/sse2/cmov/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/tls/sse2/cmov", 0xffe534b4) = -1 ENOENT (No such file or directory)
open("/lib32/tls/sse2/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/tls/sse2", 0xffe534b4)   = -1 ENOENT (No such file or directory)
open("/lib32/tls/cmov/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/tls/cmov", 0xffe534b4)   = -1 ENOENT (No such file or directory)
open("/lib32/tls/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/tls", 0xffe534b4)        = -1 ENOENT (No such file or directory)
open("/lib32/i686/sse2/cmov/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/i686/sse2/cmov", 0xffe534b4) = -1 ENOENT (No such file or directory)
open("/lib32/i686/sse2/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/i686/sse2", 0xffe534b4)  = -1 ENOENT (No such file or directory)
open("/lib32/i686/cmov/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/i686/cmov", 0xffe534b4)  = -1 ENOENT (No such file or directory)
open("/lib32/i686/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/i686", 0xffe534b4)       = -1 ENOENT (No such file or directory)
open("/lib32/sse2/cmov/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/sse2/cmov", 0xffe534b4)  = -1 ENOENT (No such file or directory)
open("/lib32/sse2/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/sse2", 0xffe534b4)       = -1 ENOENT (No such file or directory)
open("/lib32/cmov/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib32/cmov", 0xffe534b4)       = -1 ENOENT (No such file or directory)
open("/lib32/libX11.so.6", O_RDONLY)    = -1 ENOENT (No such file or directory)
stat64("/lib32", {st_mode=S_IFDIR|0755, st_size=1720, ...}) = 0
・・・

ライブラリが無いってだけ?ググってみたり。(32 bit compatible libs on 64 bit?)
適当にライブラリ入れてみたり。

% sudo aptitude install ia32-libs
以下の新規パッケージがインストールされます:
  ia32-libs lib32asound2{a} lib32z1{a}
更新: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
29.5MB のアーカイブを取得する必要があります。展開後に 75.7MB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?]
取得:1 http://ring.riken.jp/archives/linux/debian/debian/ squeeze/main lib32z1 amd64 1:1.2.3.4.dfsg-3 [76.1kB]
取得:2 http://ring.riken.jp/archives/linux/debian/debian/ squeeze/main lib32asound2 amd64 1.0.23-1 [326kB]
取得:3 http://ring.riken.jp/archives/linux/debian/debian/ squeeze/main ia32-libs amd64 20090808 [29.1MB]
29.5MB を 25s 秒でダウンロードしました (1,143kB/s)
未選択パッケージ lib32z1 を選択しています。
(データベースを読み込んでいます ... 現在 153054 個のファイルとディレクトリがインストールされています。)
(.../lib32z1_1%3a1.2.3.4.dfsg-3_amd64.deb から) lib32z1 を展開しています...
未選択パッケージ lib32asound2 を選択しています。
(.../lib32asound2_1.0.23-1_amd64.deb から) lib32asound2 を展開しています...
未選択パッケージ ia32-libs を選択しています。
(.../ia32-libs_20090808_amd64.deb から) ia32-libs を展開しています...
lib32z1 (1:1.2.3.4.dfsg-3) を設定しています ...
lib32asound2 (1.0.23-1) を設定しています ...
ia32-libs (20090808) を設定しています ...

再度・・・

% tools/emulator @JNDK01 -qemu --cpu cortex-a8
emulator: warning: opening audio output failed

動いた!画面は代わり映え無し。

tools/adb も動かない。

% tools/adb
tools/adb: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
% ldd tools/adb
        linux-gate.so.1 =>  (0xf774b000)
        librt.so.1 => /lib32/librt.so.1 (0xf772c000)
        libncurses.so.5 => /lib32/libncurses.so.5 (0xf76f3000)
        libpthread.so.0 => /lib32/libpthread.so.0 (0xf76d9000)
        libstdc++.so.6 => not found
        libm.so.6 => /lib32/libm.so.6 (0xf76b3000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7695000)
        libc.so.6 => /lib32/libc.so.6 (0xf754e000)
        /lib/ld-linux.so.2 (0xf774c000)

ググったら、g++-multilibが必要とか。(Building on Ubuntu AMD64 bit enviroment)
早速。

% sudo aptitude install g++-multilib
以下の新規パッケージがインストールされます:
  g++-4.4-multilib{a} g++-multilib gcc-4.4-multilib{a} lib32gomp1{a} lib32stdc++6{a}
更新: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
3,714kB のアーカイブを取得する必要があります。展開後に 9,769kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?]
取得:1 http://ring.riken.jp/archives/linux/debian/debian/ squeeze/main lib32gomp1 amd64 4.4.4-8 [24.7kB]
取得:2 http://ring.riken.jp/archives/linux/debian/debian/ squeeze/main gcc-4.4-multilib amd64 4.4.4-8 [2,331kB]
取得:3 http://ring.riken.jp/archives/linux/debian/debian/ squeeze/main lib32stdc++6 amd64 4.4.4-8 [347kB]
取得:4 http://ring.riken.jp/archives/linux/debian/debian/ squeeze/main g++-4.4-multilib amd64 4.4.4-8 [1,010kB]
取得:5 http://ring.riken.jp/archives/linux/debian/debian/ squeeze/main g++-multilib amd64 4:4.4.4-2 [822B]
3,714kB を 3s 秒でダウンロードしました (1,065kB/s)
未選択パッケージ lib32gomp1 を選択しています。
(データベースを読み込んでいます ... 現在 153023 個のファイルとディレクトリがインストールされています。)
(.../lib32gomp1_4.4.4-8_amd64.deb から) lib32gomp1 を展開しています...
未選択パッケージ gcc-4.4-multilib を選択しています。
(.../gcc-4.4-multilib_4.4.4-8_amd64.deb から) gcc-4.4-multilib を展開しています...
未選択パッケージ lib32stdc++6 を選択しています。
(.../lib32stdc++6_4.4.4-8_amd64.deb から) lib32stdc++6 を展開しています...
未選択パッケージ g++-4.4-multilib を選択しています。
(.../g++-4.4-multilib_4.4.4-8_amd64.deb から) g++-4.4-multilib を展開しています...
未選択パッケージ g++-multilib を選択しています。
(.../g++-multilib_4%3a4.4.4-2_amd64.deb から) g++-multilib を展開しています...
lib32gomp1 (4.4.4-8) を設定しています ...
gcc-4.4-multilib (4.4.4-8) を設定しています ...
lib32stdc++6 (4.4.4-8) を設定しています ...
g++-4.4-multilib (4.4.4-8) を設定しています ...
g++-multilib (4:4.4.4-2) を設定しています ...

インストール後。

% ldd tools/adb
        linux-gate.so.1 =>  (0xf7731000)
        librt.so.1 => /lib32/librt.so.1 (0xf7712000)
        libncurses.so.5 => /lib32/libncurses.so.5 (0xf76d9000)
        libpthread.so.0 => /lib32/libpthread.so.0 (0xf76bf000)
        libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf75ca000)
        libm.so.6 => /lib32/libm.so.6 (0xf75a4000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7586000)
        libc.so.6 => /lib32/libc.so.6 (0xf743f000)
        /lib/ld-linux.so.2 (0xf7732000)
% ./tools/adb devices
List of devices attached
????????????    no permissions

% sudo ./tools/adb devices
List of devices attached
????????????    no permissions
% tools/adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
% sudo ./tools/adb devices
List of devices attached
????????????    no permissions

ん~・・・、またまたググると、adb start-serverをroot権限で実行する必要があるらしい。(Dev PhoneにUbuntuマシンから接続しようとしたら'error: insufficient permissions for device'などと怒られるときの対処法)

% sudo tools/adb kill-server
% sudo tools/adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
% tools/adb devices
List of devices attached
SSHEX007494     device

おお~。

Google Android用携帯アプリ作成のための基礎知識 (4/5)
を見て適当にコマンド叩いてみたり。

% tools/adb shell
$ ls
sh_tmp
sqlite_journals
sdservice_tmp
sphinx_tmp
bkrs_data_tmp
obex_data_tmp
sqlite_stmt_journals
cache
data
cprm
sdcard
etc
system
sys
sbin
proc
init.rc
init.qcom.sh
init.qcom.rc
init.qcom.post_boot.sh
init.goldfish.rc
init
default.prop
root
dev
$ ls -l
drwxrwxrwt root     root              2010-09-21 04:07 sh_tmp
drwxrwxrwx system   system            2010-09-22 03:11 sqlite_journals
drwxrwxrwt root     root              2010-09-21 04:07 sdservice_tmp
drwxrwxrwt root     root              2010-09-20 12:52 sphinx_tmp
drwxrwxrwt root     root              2010-09-20 12:52 bkrs_data_tmp
drwxrwxrwt root     root              2010-09-20 12:52 obex_data_tmp
drwxrwxrwt root     root              2010-09-22 03:10 sqlite_stmt_journals
drwxrwx--- system   cache             2010-09-18 23:39 cache
drwxrwxrwx system   system            2010-09-21 13:53 data
d---rwxr-x system   sdcard_rw          1970-01-01 09:00 cprm
d---rwxr-x system   sdcard_rw          2010-09-21 04:18 sdcard
lrwxrwxrwx root     root              2010-09-20 12:52 etc -> /system/etc
drwxr-xr-x root     root              2010-01-01 00:00 system
drwxr-xr-x root     root              1970-01-01 09:00 sys
drwxr-x--- root     root              1970-01-01 09:00 sbin
dr-xr-xr-x root     root              1970-01-01 09:00 proc
-rwxr-x--- root     root        20031 1970-01-01 09:00 init.rc
-rwxr-x--- root     root         2149 1970-01-01 09:00 init.qcom.sh
-rwxr-x--- root     root         4693 1970-01-01 09:00 init.qcom.rc
-rwxr-x--- root     root         2982 1970-01-01 09:00 init.qcom.post_boot.sh
-rwxr-x--- root     root         1677 1970-01-01 09:00 init.goldfish.rc
-rwxr-x--- root     root       121032 1970-01-01 09:00 init
-rw-r--r-- root     root          118 1970-01-01 09:00 default.prop
drwx------ root     root              2010-08-04 16:23 root
drwxr-xr-x root     root              2010-09-20 13:29 dev
$ ls -l /system/bin
lrwxr-xr-x root     shell             2010-01-01 00:00 bugreport -> dumpstate
lrwxr-xr-x root     shell             2010-01-01 00:00 cat -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 chmod -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 chown -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 cmp -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 date -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 dd -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 df -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 dmesg -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 dumpcrash -> dumpstate
lrwxr-xr-x root     shell             2010-01-01 00:00 getevent -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 getprop -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 hd -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 id -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 ifconfig -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 iftop -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 insmod -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 ioctl -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 kill -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 ln -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 log -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 ls -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 lsmod -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 mkdir -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 mount -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 mv -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 netstat -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 newfs_msdos -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 notify -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 printenv -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 ps -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 reboot -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 renice -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 rm -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 rmdir -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 rmmod -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 route -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 schedtop -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 sendevent -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 setconsole -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 setprop -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 sleep -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 smd -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 start -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 stop -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 sync -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 top -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 umount -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 vmstat -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 watchprops -> toolbox
lrwxr-xr-x root     shell             2010-01-01 00:00 wipe -> toolbox
-rwxr-xr-x root     shell       86780 2010-01-01 00:00 applypatch
-rwxr-xr-x root     shell        9640 2010-01-01 00:00 flash_image
-rwxr-xr-x root     shell       68256 2010-01-01 00:00 linker
-rwxr-xr-x root     shell      309404 2010-01-01 00:00 recovery
-rwxr-xr-x root     shell      247656 2010-01-01 00:00 updater
-rwxr-xr-x root     shell      111824 2010-01-01 00:00 akmd2
-rwxr-xr-x root     shell        5420 2010-01-01 00:00 dalvikvm
-rwxr-xr-x root     shell      109436 2010-01-01 00:00 dbus-daemon
-rwxr-xr-x root     shell        9644 2010-01-01 00:00 dexopt
-rwxr-xr-x root     shell       44536 2010-01-01 00:00 dhcpcd
-rwxr-xr-x root     shell       13820 2010-01-01 00:00 dumpe2fs
-rwxr-xr-x root     shell        5460 2010-01-01 00:00 dvz
-rwxr-xr-x root     shell      110856 2010-01-01 00:00 e2fsck
-rwxr-xr-x root     shell      127652 2010-01-01 00:00 fotad
-rwxr-xr-x root     shell       22544 2010-01-01 00:00 fsck_msdos
-rwxr-xr-x root     shell         201 2010-01-01 00:00 input
-rwxr-xr-x root     shell       30580 2010-01-01 00:00 mke2fs
-rwxr-xr-x root     shell         205 2010-01-01 00:00 monkey
-rwxr-xr-x root     shell       22164 2010-01-01 00:00 resize2fs
-rwxr-xr-x root     shell       13788 2010-01-01 00:00 rlog
-rwxr-xr-x root     shell       22280 2010-01-01 00:00 tune2fs
-rwxr-xr-x root     shell      109020 2010-01-01 00:00 iptables
-rwxr-xr-x root     shell       18216 2010-01-01 00:00 mtpd
-rwxr-xr-x root     shell        5320 2010-01-01 00:00 mwmainte
-rwxr-xr-x root     shell       59432 2010-01-01 00:00 obexd
-rwxr-xr-x root     shell      163132 2010-01-01 00:00 racoon
-rwxr-sr-x root     net_raw     26620 2010-01-01 00:00 ping
-rwxr-xr-x root     shell      147648 2010-01-01 00:00 pppd
-rwxr-xr-x root     shell        5336 2010-01-01 00:00 sdservice
-rwxr-xr-x root     shell     1017532 2010-01-01 00:00 synergy_service
-rwxr-xr-x root     shell        5364 2010-01-01 00:00 synergy_wifi_attach
-rwxr-xr-x root     shell       22532 2010-01-01 00:00 synergy_wifi_ptest
-r-sr-xr-x root     shell       55072 2010-01-01 00:00 synergy_wifi_wps
-rwxr-xr-x root     shell         354 2010-01-01 00:00 unififw
-rwxr-xr-x root     shell        5308 2010-01-01 00:00 mediayamahaserver
-rwxr-xr-x root     shell      143152 2010-01-01 00:00 uimd
-rwxr-xr-x root     shell       26168 2010-01-01 00:00 usbmgrd
-rwxr-xr-x root     shell       30744 2010-01-01 00:00 wpa_cli
-rwxr-xr-x root     shell      105100 2010-01-01 00:00 wpa_supplicant
-rwxr-xr-x root     shell       22124 2010-01-01 00:00 debuggerd
-rwxr-xr-x root     shell        5304 2010-01-01 00:00 factory_reset
-rwxr-xr-x root     shell        5496 2010-01-01 00:00 gzip
-rwxr-xr-x root     shell        9832 2010-01-01 00:00 logcat
-rwxr-xr-x root     shell        9672 2010-01-01 00:00 logwrapper
-rwxr-sr-x root     inet         5616 2010-01-01 00:00 netcfg
-rwxr-xr-x root     shell        5592 2010-01-01 00:00 rild
-rwxr-xr-x root     shell       86944 2010-01-01 00:00 sh
-rwxr-xr-x root     shell      116612 2010-01-01 00:00 shdisp_process
-rwxr-xr-x root     shell        5540 2010-01-01 00:00 shlcdc_process
-rwxr-xr-x root     shell       71560 2010-01-01 00:00 shsd_process
-rwxr-xr-x root     shell        9588 2010-01-01 00:00 shsd_test_process
-rwxr-xr-x root     shell       13920 2010-01-01 00:00 shusb_process
-rwxr-xr-x root     shell       73160 2010-01-01 00:00 toolbox
-rwxr-xr-x root     shell       43196 2010-01-01 00:00 vold
-rwxr-xr-x root     shell      101160 2010-01-01 00:00 dgstmgrd
-rwxr-xr-x root     shell        5828 2010-01-01 00:00 fatsh
-rwxr-xr-x root     shell        9932 2010-01-01 00:00 fatsh_cprm
-rwxr-xr-x root     shell       14252 2010-01-01 00:00 fusermount
-rwxr-xr-x root     shell       18144 2010-01-01 00:00 logd
-rwxr-xr-x root     shell        5428 2010-01-01 00:00 medousa
-rwxr-xr-x root     shell       18008 2010-01-01 00:00 mm-adec-omxaac-test
-rwxr-xr-x root     shell       18076 2010-01-01 00:00 mm-adec-omxmp3-test
-rwxr-xr-x root     shell       13872 2010-01-01 00:00 mm-aenc-omxaac-test
-rwxr-xr-x root     shell       26396 2010-01-01 00:00 mm-vdec-omx-test
-rwxr-xr-x root     shell        5576 2010-01-01 00:00 mountfuse
-rwxr-xr-x root     shell        5304 2010-01-01 00:00 schedtest
-rwxr-xr-x root     shell        5396 2010-01-01 00:00 testfuse
-rwxr-xr-x root     shell         191 2010-01-01 00:00 am
-rwxr-xr-x root     shell        5564 2010-01-01 00:00 app_process
-rwxr-xr-x root     shell         199 2010-01-01 00:00 bmgr
-rwxr-xr-x root     shell       14232 2010-01-01 00:00 bootanimation
-rwxr-xr-x root     shell       14188 2010-01-01 00:00 dumpstate
-rwxr-xr-x root     shell        9724 2010-01-01 00:00 dumpsys
-rwxr-xr-x root     shell         194 2010-01-01 00:00 ime
-rwxr-xr-x root     shell       14028 2010-01-01 00:00 installd
-rwxr-xr-x root     shell       13932 2010-01-01 00:00 keystore
-rwxr-xr-x root     shell         191 2010-01-01 00:00 pm
-rwxr-xr-x root     shell        9764 2010-01-01 00:00 service
-rwxr-xr-x root     shell        9836 2010-01-01 00:00 servicemanager
-rwxr-xr-x root     shell        5288 2010-01-01 00:00 surfaceflinger
-rwxr-xr-x root     shell         192 2010-01-01 00:00 svc
-rwxr-xr-x root     shell        5328 2010-01-01 00:00 system_server
-rwxr-xr-x root     shell        5440 2010-01-01 00:00 mediaserver
-rwxr-xr-x root     shell     2513124 2010-01-01 00:00 dtvserver
-rwxr-xr-x root     shell       64192 2010-01-01 00:00 dbmanager_test
-rwxr-xr-x root     shell       27208 2010-01-01 00:00 dbrecovery_utility_test
-rwxr-xr-x root     shell       13880 2010-01-01 00:00 CKPD-daemon
-rwxr-xr-x root     shell      159644 2010-01-01 00:00 dbus_bt
-rwxr-xr-x root     shell        5672 2010-01-01 00:00 diag_klog
-rwxr-xr-x root     shell        5448 2010-01-01 00:00 ftmTest
-rwxr-xr-x root     shell        9728 2010-01-01 00:00 handset-keypress
-rwxr-xr-x root     shell       18012 2010-01-01 00:00 port-bridge
-rwxr-xr-x root     shell       18896 2010-01-01 00:00 qmuxd
-rwxr-xr-x root     shell       10016 2010-01-01 00:00 test_diag
-rwxr-xr-x root     shell       48500 2010-01-01 00:00 loc_api_app
-rwxr-xr-x root     shell        5608 2010-01-01 00:00 mm-abl-test
-rwxr-xr-x root     shell       22152 2010-01-01 00:00 mm-adec-omxQcelp13-test
-rwxr-xr-x root     shell       22152 2010-01-01 00:00 mm-adec-omxevrc-test
-rwxr-xr-x root     shell       14048 2010-01-01 00:00 mm-aenc-omxqcelp13-test
-rwxr-xr-x root     shell       18028 2010-01-01 00:00 mm-jpeg-dec-test
-rwxr-xr-x root     shell       17988 2010-01-01 00:00 mm-jpeg-enc-test
-rwxr-xr-x root     shell       53200 2010-01-01 00:00 mm-qcamera-test
-rwxr-xr-x root     shell       10576 2010-01-01 00:00 mm-qcamera-testsuite-client
-rwxr-xr-x root     shell       22276 2010-01-01 00:00 mm-venc-omx-test
$ service list
Found 75 services:
0       iSendCmail: [jp.co.sharp.android.internal.telephony.cdma.ISendCmailInterface]
1       effect: [jp.co.sharp.android.media.IEffectService]
2       com.kddi.android.uim.uimmonitor: [com.kddi.android.uim.IUimMonitor]
3       com.kddi.android.uim.uimmanager: [com.kddi.android.uim.IUimManager]
4       checkin: [android.os.ICheckinService]
5       phone: [com.android.internal.telephony.ITelephony]
6       iphonesubinfo: [com.android.internal.telephony.IPhoneSubInfo]
7       simphonebook: [com.android.internal.telephony.IIccPhoneBook]
8       isms: [com.android.internal.telephony.ISms]
9       GoliathCompetitionServer: [jp.co.sharp.android.competition.server.ICompetitionServer]
10      AlarmCompetitionServer: [jp.co.sharp.android.competition.server.ICompetitionServer]
11      DmcFwService: [com.kddi.android.dmcfw.IDmcFwService]
12      obexmanager: [jp.co.sharp.android.obexmanager.server.IOBEXMngService]
13      ExtIfCompetitionServer: [jp.co.sharp.android.competition.server.ICompetitionServer]
14      appwidget: [com.android.internal.appwidget.IAppWidgetService]
15      audio: [android.media.IAudioService]
16      wallpaper: [android.app.IWallpaperService]
17      search: [android.app.ISearchManager]
18      location: [android.location.ILocationManager]
19      devicestoragemonitor: []
20      mount: [android.os.IMountService]
21      usbmanager: [jp.co.sharp.android.usbmanager.server.IUsbManagerService]
22      notification: [android.app.INotificationManager]
23      accessibility: [android.view.accessibility.IAccessibilityManager]
24      connectivity: [android.net.IConnectivityManager]
25      wifi: [android.net.wifi.IWifiManager]
26      netstat: [android.os.INetStatService]
27      input_method: [com.android.internal.view.IInputMethodManager]
28      clipboard: [android.text.IClipboard]
29      bgringer: [jp.co.sharp.android.internal.app.IBgRingerService]
30      softguide: [jp.co.sharp.android.softguide.ISoftGuide]
31      statusbar: [android.app.IStatusBar]
32      fm_transmitter: [android.fm.IFmTransmitter]
33      fm_receiver: [android.fm.IFmReceiver]
34      bluetooth_Sdap: [android.bluetooth.IBluetoothSdap]
35      bluetooth_ObjectPushServer: [android.bluetooth.IBluetoothObjectPushServer]
36      bluetooth_ObjectPushClient: [android.bluetooth.IBluetoothObjectPushClient]
37      bluetooth_dung: [android.bluetooth.IBluetoothDunGateway]
38      bluetooth_handsfree: [android.bluetooth.IBluetoothHandsfree]
39      bluetooth_avrcp: [android.bluetooth.IBluetoothAvrcp]
40      bluetooth_a2dp: [android.bluetooth.IBluetoothA2dp]
41      bluetooth: [android.bluetooth.IBluetoothDevice]
42      poweroffcheck: [jp.co.sharp.android.internal.app.IPowerOffCheck]
43      securitylock: [jp.co.sharp.android.securitylock.ISecurityLockManager]
44      window: [android.view.IWindowManager]
45      keyhook: [jp.co.sharp.android.internal.app.IKeyHookService]
46      sensor: [android.hardware.ISensorService]
47      alarm: [android.app.IAlarmManager]
48      hardware: [android.os.IHardwareService]
49      battery: []
50      content: [android.content.IContentService]
51      permission: [android.os.IPermissionController]
52      activity.providers: []
53      activity.senders: []
54      activity.services: []
55      activity.broadcasts: []
56      cpuinfo: []
57      meminfo: []
58      activity: [android.app.IActivityManager]
59      package: [android.content.pm.IPackageManager]
60      telephony.registry: [com.android.internal.telephony.ITelephonyRegistry]
61      usagestats: [com.android.internal.app.IUsageStats]
62      batteryinfo: [com.android.internal.app.IBatteryStats]
63      power: [android.os.IPowerManager]
64      entropy: []
65      SurfaceFlinger: [android.ui.ISurfaceComposer]
66      media.camera: [android.hardware.ICameraService]
67      media.player: [android.hardware.IMediaPlayerService]
68      media.audio_flinger: [android.media.IAudioFlinger]
69      dtvbml.server: []
70      dtv.server: []
71      media.yamahaplayer: [IService]
72      sd.service: []
73      jp.co.sharp.android.secure.SafetyBox: []
74      jp.co.sharp.android.secure.APIProtection: []
$ top



User 4%, System 95%, IOW 0%, IRQ 0%
User 14 + Nice 0 + Sys 291 + Idle 0 + IOW 0 + IRQ 0 + SIRQ 0 = 305

  PID CPU% S  #THR     VSS     RSS UID      Name
 1222  97% S    15  22308K    908K root     /system/bin/synergy_service
16080   0% R     1    892K    384K shell    top
 1228   0% S     2   1264K     96K root     /system/bin/akmd2
 1364   0% S    76 302380K  40100K system   system_server
    5   0% S     1      0K      0K root     khelper
   10   0% S     1      0K      0K root     suspend
  191   0% S     1      0K      0K root     kblockd/0
  208   0% S     1      0K      0K root     kmmcd
  215   0% S     1      0K      0K root     btaddconn
  216   0% S     1      0K      0K root     btdelconn
  230   0% S     1      0K      0K root     modem_notifier
  241   0% S     1      0K      0K root     smd_tty
  253   0% S     1      0K      0K root     qmi
  263   0% S     1      0K      0K root     ctl0
  267   0% S     1      0K      0K root     ctl1
  271   0% S     1      0K      0K root     ctl2
  275   0% S     1      0K      0K root     nmea
  278   0% D     1      0K      0K root     rpcrouter
  283   0% S     1      0K      0K root     dalrpc_rcv_DAL_
  285   0% S     1      0K      0K root     krpcserversd
  330   0% S     1      0K      0K root     dalrpc_rcv_DAL_
  386   0% S     1      0K      0K root     kswapd0
  388   0% S     1      0K      0K root     aio/0
  394   0% S     1      0K      0K root     nfsiod
  405   0% S     1      0K      0K root     mdp_dma_wq
  406   0% S     1      0K      0K root     mdp_vsync_wq
  407   0% S     1      0K      0K root     mdp_pipe_ctrl_w
  488   0% S     1      0K      0K root     diag_wq
  560   0% S     1      0K      0K root     scsi_tgtd/0
  568   0% S     1      0K      0K root     mtdblockd
  599   0% S     1      0K      0K root     ubi_bgt0d
  607   0% S     1      0K      0K root     ubi_bgt1d
  610   0% S     1      0K      0K root     ubi_bgt2d
  613   0% S     1      0K      0K root     usb_work
  617   0% S     1      0K      0K root     diag
  618   0% S     1      0K      0K root     gs_tty
  621   0% S     1      0K      0K root     mdlm_tty
  624   0% S     1      0K      0K root     obex_tty
  633   0% D     1      0K      0K root     kpmapp_usbclntd
  634   0% D     1      0K      0K root     kpmapp_usbclntc
  667   0% S     1      0K      0K root     kondemand/0
  678   0% S     1      0K      0K root     hid_compat
  713   0% S     1      0K      0K root     sthenod
  724   0% S     1      0K      0K root     krfcommd
  726   0% S     1      0K      0K root     rpciod/0
  740   0% D     1      0K      0K root     khsclntd
 1010   0% S     1      0K      0K root     mmcqd
 1202   0% S     1      0K      0K root     kjournald
 1203   0% S     1      0K      0K root     kjournald
 1204   0% S     2   3856K    316K root     /system/bin/logd
    1   0% S     1    320K    236K root     /init
 1206   0% S     1    784K    136K system   /system/bin/servicemanager
 1207   0% S     1   1528K    308K root     /system/bin/vold
 1208   0% S     6   7992K    568K root     /system/bin/usbmgrd
 1209   0% S     1    644K     92K root     /system/bin/debuggerd
 1210   0% S     1   4980K    280K root     /system/bin/fotad
 1211   0% S    12  17140K    928K root     /system/bin/rild
 1212   0% S     9  13784K    676K root     /system/bin/uimd
 1213   0% S     1 102376K  15696K root     zygote
 1214   0% S    10  54388K   9288K media    /system/bin/mediaserver
 1215   0% S     4  18156K   2316K media    /system/bin/mediayamahaserver
 1216   0% S     1   1308K    224K bluetoot /system/bin/dbus-daemon
 1217   0% S     1    804K    200K root     /system/bin/installd
 1218   0% S     1   1680K    132K keystore /system/bin/keystore
 1219   0% S     1    808K    124K root     /system/bin/shlcdc_process
 1220   0% S     3   4340K    924K root     /system/bin/shdisp_process
 1223   0% S     9  11244K    700K root     /system/bin/shsd_process
 1226   0% S     5  18372K   2328K root     /system/bin/sdservice
 1227   0% S     4   4808K    376K root     /system/bin/obexd
 1229   0% S     2   1888K    188K root     /system/bin/shusb_process
 1230   0% S     1   1180K    300K root     /system/bin/medousa
 1232   0% S     2   2264K    328K root     /system/bin/port-bridge
 1233   0% S     5   4848K    208K root     /system/bin/qmuxd
 1269   0% S    11  14188K    636K root     /system/bin/mwmainte
 1480   0% S     9 192604K  35992K aqq_2001 com.android.launcher
 1483   0% S    10 137184K  17348K radio    com.android.phone
 1488   0% S    19 142312K  15612K system   jp.co.sharp.android.sendcmailservice
 1492   0% S    21 172924K  18960K aqq_2001 android.process.acore
 1495   0% S    15 140844K  18284K app_9    jp.co.fsi.fs1seg
 1721   0% S     3   3904K    476K root     fatsh_cprm
 3016   0% S     1      0K      0K root     unifi_workq
 3026   0% S     1      0K      0K root     uf_bh_thread
 3027   0% S     1      0K      0K root     ksdioirqd/mmc1
 3029   0% S     1    632K     96K log      /system/bin/logwrapper
 3030   0% S     1   1816K    348K root     /system/bin/wpa_supplicant
 7581   0% S     5  23280K    932K root     /system/bin/dtvserver
 8788   0% S     4   3368K    184K shell    /sbin/adbd
12039   0% S     5 191320K  18796K aqq_47   jp.co.omronsoft.iwnnime
12045   0% S     9 153516K  18064K aqq_2003 android.process.media
14925   0% S     1      0K      0K root     pdflush
15223   0% S     1      0K      0K root     pdflush
15391   0% S     5 134652K  18952K netappli jp.co.sharp.android.messaging
15618   0% S     5 130364K  19252K app_6    com.pv.wmdrmservice
15836   0% S     6 132320K  18332K app_41   org.appaware
15851   0% S    12 158568K  25944K app_20   com.google.process.gapps
15864   0% S    19 144916K  18676K system   com.kddi.android.fota
15915   0% S     1    712K    320K shell    /system/bin/sh
15959   0% S     1    632K    248K log      /system/bin/logwrapper
15960   0% S     1    824K    356K dhcp     /system/bin/dhcpcd
16060   0% S    16 141960K  21216K app_5    com.pv.pvmtpservicestart
 1205   0% S     6   8936K    952K root     /system/bin/dgstmgrd
    2   0% S     1      0K      0K root     kthreadd
    3   0% S     1      0K      0K root     ksoftirqd/0
    4   0% S     1      0K      0K root     events/0
^C
カテゴリー: プログラム, モバイル | タグ: , , | コメントする

Androidの開発環境をLinux上に構築

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

Hello, world! in IS01Hello, world! in IS01(2)
で、Windows上に開発環境構築したけど、なんとなくLinux上の方が開発しやすそうだったので、
Linux上に構築してみる。

でも、一からインストールするのは面倒なので、
以前、KuroSheevaの開発環境用に作ったVMをコピーして使う。
VMのコピー作業は割愛。

Linux (i386)用のSDKツールをAndroid SDK | Android Developersからダウンロード。

user@android-dev:~$ wget 'http://dl.google.com/android/android-sdk_r07-linux_x86.tgz'
--2010-09-20 16:37:38--  http://dl.google.com/android/android-sdk_r07-linux_x86.tgz
dl.google.com をDNSに問いあわせています... 72.14.203.91, 72.14.203.93, 72.14.203.136, ...
dl.google.com|72.14.203.91|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 17114517 (16M) [application/x-tar]
`android-sdk_r07-linux_x86.tgz' に保存中

100%[======================================================>] 17,114,517  1.12M/s   時間 15s

2010-09-20 16:37:53 (1.11 MB/s) - `android-sdk_r07-linux_x86.tgz' へ保存完了 [17114517/17114517]

ダウンロード完了したら展開。

user@android-dev:~$ tar zxf android-sdk_r07-linux_x86.tgz
user@android-dev:~$ ls
android-sdk-linux_x86  android-sdk_r07-linux_x86.tgz

Readme.txtを参照して、その通りに。

user@android-dev:~/android-sdk-linux_x86$ cat SDK\ Readme.txt
Welcome to the Android SDK!

The Android SDK archive now only contains the tools. It no longer comes
populated with a specific Android platform or Google add-on. Instead you
use the SDK Manager to install or update SDK components such as platforms,
tools, add-ons, and documentation.

In order to start developing applications, you must install at least one
version of the Android platform using the SDK Manager.

This requires an Internet connection, so if you plan to use the SDK
offline, please make sure to download the necessary components while online.

To start the SDK Manager, please execute the program "tools/android".

From the command-line you can also directly trigger an update by
executing:
  tools/android update sdk

For more information, please consult the Android web site at
  http://developer.android.com

user@android-dev:~/android-sdk-linux_x86$ tools/android update sdk
tools/android: 83: java: not found
tools/android: 100: java: not found
exec: 116: java: not found

javaが無いと怒られたので、インストール。

user@android-dev:~/android-sdk-linux_x86$ sudo aptitude search java6
v   java6-runtime                           -
v   java6-runtime-headless                  -
v   java6-sdk                               -
user@android-dev:~/android-sdk-linux_x86$ sudo aptitude install java6-sdk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
"java6-sdk" は、以下のパッケージから提供されている仮想パッケージです:
  openjdk-6-jdk default-jdk
インストールするものを一つ選んでください。
インストール・削除・更新されるパッケージがありません。
0 個のパッケージを更新、 0 個を新たにインストール、 0 個を削除予定、28 個が更新されていない。
0B のアーカイブを取得する必要があります。 展開後に 0B のディスク領域が新たに消費されます。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了

user@android-dev:~/android-sdk-linux_x86$ sudo aptitude install openjdk-6-jdk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
以下の新規パッケージがインストールされます:
  ca-certificates-java{a} defoma{a} fontconfig{a} fontconfig-config{a}
  hicolor-icon-theme{a} icedtea-6-jre-cacao{a} java-common{a} libaccess-bridge-java{a}
  libaccess-bridge-java-jni{a} libasound2{a} libatk1.0-0{a} libatk1.0-data{a}
  libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} libcairo2{a} libcups2{a}
  libdatrie1{a} libdirectfb-1.2-0{a} libflac8{a} libfontconfig1{a} libfontenc1{a}
  libgif4{a} libgtk2.0-0{a} libgtk2.0-bin{a} libgtk2.0-common{a} libice-dev{a} libice6{a}
  libjasper1{a} libjpeg62{a} liblcms1{a} libnspr4-0d{a} libnss3-1d{a} libogg0{a}
  libpango1.0-0{a} libpango1.0-common{a} libpixman-1-0{a} libpthread-stubs0{a}
  libpthread-stubs0-dev{a} libpulse0{a} libsm-dev{a} libsm6{a} libsndfile1{a} libsysfs2{a}
  libthai-data{a} libthai0{a} libtiff4{a} libts-0.0-0{a} libvorbis0a{a} libvorbisenc2{a}
  libx11-dev{a} libxau-dev{a} libxcb-render-util0{a} libxcb-render0{a} libxcb1-dev{a}
  libxcomposite1{a} libxcursor1{a} libxdamage1{a} libxdmcp-dev{a} libxfixes3{a}
  libxfont1{a} libxft2{a} libxi6{a} libxinerama1{a} libxrandr2{a} libxrender1{a}
  libxt-dev{a} libxt6{a} libxtst6{a} openjdk-6-jdk openjdk-6-jre{a}
  openjdk-6-jre-headless{a} openjdk-6-jre-lib{a} shared-mime-info{a} tsconf{a}
  ttf-dejavu-core{a} ttf-dejavu-extra{a} tzdata-java{a} x-ttcidfont-conf{a} x11-common{a}
  x11proto-core-dev{a} x11proto-input-dev{a} x11proto-kb-dev{a} xfonts-encodings{a}
  xfonts-utils{a} xtrans-dev{a}
以下のパッケージは更新されます:
  tzdata
1 個のパッケージを更新、 86 個を新たにインストール、 0 個を削除予定、27 個が更新されていない。
67.5MB のアーカイブを取得する必要があります。 展開後に 207MB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?]
拡張状態情報を書き込んでいます... 完了
取得:1 http://jp.archive.ubuntu.com/ubuntu/ lucid/main x11-common 1:7.5+5ubuntu1 [308kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu/ lucid/main libice6 2:1.0.6-1 [50.5kB]
・・・
取得:86 http://jp.archive.ubuntu.com/ubuntu/ lucid/main x-ttcidfont-conf 32 [23.8kB]
取得:87 http://jp.archive.ubuntu.com/ubuntu/ lucid-updates/main icedtea-6-jre-cacao 6b18-1.8.1-0ubuntu1 [344kB]
67.5MB を 58s 秒でダウンロードしました (1,156kB/s)
パッケージからテンプレートを展開しています: 100%
パッケージを事前設定しています ...
未選択パッケージ x11-common を選択しています。
(データベースを読み込んでいます ... 現在 46236 個のファイルとディレクトリがインストールされています。)
(.../x11-common_1%3a7.5+5ubuntu1_all.deb から) x11-common を展開しています...
・・・
update-alternatives: using /usr/lib/jvm/java-6-openjdk/bin/wsimport to provide /usr/bin/wsimport (wsimport) in auto mode.
update-alternatives: using /usr/lib/jvm/java-6-openjdk/bin/xjc to provide /usr/bin/xjc (xjc) in auto mode.

libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了

現在の状態: 更新が 27 個 [-1]。
user@android-dev:~/android-sdk-linux_x86$

tools/android update sdk を再実行。

user@android-dev:~/android-sdk-linux_x86$ tools/android update sdk
No command line parameters provided, launching UI.
See 'android --help' for operations from the command line.
Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
        at org.eclipse.swt.SWT.error(Unknown Source)
        at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
        at org.eclipse.swt.widgets.Display.create(Unknown Source)
        at org.eclipse.swt.graphics.Device.<init>(Unknown Source)
        at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
        at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
        at org.eclipse.swt.widgets.Display.getDefault(Unknown Source)
        at org.eclipse.swt.widgets.Shell.<init>(Unknown Source)
        at org.eclipse.swt.widgets.Shell.<init>(Unknown Source)
        at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.createContents(UpdaterWindowImpl.java:122)
        at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.open(UpdaterWindowImpl.java:102)
        at com.android.sdkuilib.repository.UpdaterWindow.open(UpdaterWindow.java:113)
        at com.android.sdkmanager.Main.showMainWindow(Main.java:307)
        at com.android.sdkmanager.Main.doAction(Main.java:259)
        at com.android.sdkmanager.Main.run(Main.java:98)
        at com.android.sdkmanager.Main.main(Main.java:87)

Xサーバを立ち上げてなかったので怒られる。
X11Forwardingな環境になっているので、Windows側でXming起動して再度。

user@android-dev:~/android-sdk-linux_x86$ tools/android update sdk
No command line parameters provided, launching UI.
See 'android --help' for operations from the command line.

すると、Windowsで動かしたSDK Managerと同じ画面が起動してくる
Hello, world! in IS01(2)と全く同じなので割愛。

次に、SH Developers Square – SDK AddOn ダウンロード
から、AddOnダウンロードして展開。

user@android-dev:~/android-sdk-linux_x86$ unzip -l sharp_addon-JNDK01_r1.zip | head
プログラム 'unzip' はまだインストールされていません。  次のように入力することでインストールできます:
sudo apt-get install unzip

unzip入れてなかったのでインストール。

user@android-dev:~/android-sdk-linux_x86$ sudo aptitude install unzip
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
以下の新規パッケージがインストールされます:
  unzip
0 個のパッケージを更新、 1 個を新たにインストール、 0 個を削除予定、27 個が更新されていない。
177kB のアーカイブを取得する必要があります。 展開後に 397kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
取得:1 http://jp.archive.ubuntu.com/ubuntu/ lucid/main unzip 6.0-1build1 [177kB]
177kB を 0s 秒でダウンロードしました (442kB/s)
未選択パッケージ unzip を選択しています。
(データベースを読み込んでいます ... 現在 50332 個のファイルとディレクトリがインストールされています。)
(.../unzip_6.0-1build1_i386.deb から) unzip を展開しています...
man-db のトリガを処理しています ...
unzip (6.0-1build1) を設定しています ...
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了

改めて展開。

user@android-dev:~/android-sdk-linux_x86$ unzip sharp_addon-JNDK01_r1.zip -d add-ons/
Archive:  sharp_addon-JNDK01_r1.zip
   creating: add-ons/sharp_addon-JNDK01_r1/docs/
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/allclasses-frame.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/allclasses-noframe.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/constant-values.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/deprecated-list.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/help-doc.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/index.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/index-all.html
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/hardware/
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/hardware/CameraEx.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/hardware/FlashLight.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/hardware/package-frame.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/hardware/package-summary.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/hardware/package-tree.html
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/client/
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/client/IIoObexPushClientDataCallback.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/client/package-frame.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/client/package-summary.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/client/package-tree.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/client/PushClient.html
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/server/
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/server/IIoObexPushServerDataCallback.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/server/package-frame.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/server/package-summary.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/server/package-tree.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/jp/co/sharp/android/io/obex/server/PushServer.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/overview-frame.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/overview-summary.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/overview-tree.html
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/package-list
   creating: add-ons/sharp_addon-JNDK01_r1/docs/reference/resources/
 extracting: add-ons/sharp_addon-JNDK01_r1/docs/reference/resources/inherit.gif
  inflating: add-ons/sharp_addon-JNDK01_r1/docs/reference/stylesheet.css
  inflating: add-ons/sharp_addon-JNDK01_r1/hardware.ini
   creating: add-ons/sharp_addon-JNDK01_r1/images/
  inflating: add-ons/sharp_addon-JNDK01_r1/images/kernel-qemu
  inflating: add-ons/sharp_addon-JNDK01_r1/images/NOTICE.txt
  inflating: add-ons/sharp_addon-JNDK01_r1/images/ramdisk.img
  inflating: add-ons/sharp_addon-JNDK01_r1/images/system.img
  inflating: add-ons/sharp_addon-JNDK01_r1/images/userdata.img
   creating: add-ons/sharp_addon-JNDK01_r1/libs/
  inflating: add-ons/sharp_addon-JNDK01_r1/libs/hardware.jar
  inflating: add-ons/sharp_addon-JNDK01_r1/libs/obex.jar
  inflating: add-ons/sharp_addon-JNDK01_r1/manifest.ini
   creating: add-ons/sharp_addon-JNDK01_r1/skins/
   creating: add-ons/sharp_addon-JNDK01_r1/skins/JNDK01/
  inflating: add-ons/sharp_addon-JNDK01_r1/skins/JNDK01/background.png
  inflating: add-ons/sharp_addon-JNDK01_r1/skins/JNDK01/enterbar.png
 extracting: add-ons/sharp_addon-JNDK01_r1/skins/JNDK01/hardware.ini
  inflating: add-ons/sharp_addon-JNDK01_r1/skins/JNDK01/key.png
  inflating: add-ons/sharp_addon-JNDK01_r1/skins/JNDK01/layout
 extracting: add-ons/sharp_addon-JNDK01_r1/skins/JNDK01/menu_b.png
  inflating: add-ons/sharp_addon-JNDK01_r1/skins/JNDK01/spacebar.png

Target IDの確認

user@android-dev:~/android-sdk-linux_x86$ tools/android list target
Available Android targets:
id: 1 or "android-4"
     Name: Android 1.6
     Type: Platform
     API level: 4
     Revision: 3
     Skins: WVGA800, HVGA (default), WVGA854, QVGA
id: 2 or "SHARP Corporation:JN-DK01:4"
     Name: JN-DK01
     Type: Add-On
     Vendor: SHARP Corporation
     Revision: 1
     Description: SHARP JN-DK01 Add-on
     Based on Android 1.6 (API level 4)
     Libraries:
      * jp.co.sharp.android.hardware (hardware.jar)

      * jp.co.sharp.android.io.obex (obex.jar)

     Skins: WVGA854, HVGA, QVGA, WVGA800, JNDK01 (default)
     Adds USB support for devices (Vendor: 0x04DD)

Target IDは、2。

AVD作って、Emulator起動

user@android-dev:~/android-sdk-linux_x86$ tools/android create avd -n JNDK01 -t 2 --sdcard 128M
Created AVD 'JNDK01' based on JN-DK01 (SHARP Corporation),
with the following hardware config:
hw.lcd.density=240
vm.heapSize=24
hw.ramSize=256M
hw.gsmModem=no
user@android-dev:~/android-sdk-linux_x86$ tools/emulator @JNDK01 -qemu --cpu cortex-a8

エミュレータの画面もHello, world! in IS01(2)と全く同じ。

動かしてみた感じWindows環境より重い。
エミュレータ動作中、topを眺めてると、sshdがえらくCPUパワーを使用してた(X11Forwardingな環境だからだろうけど)
のが原因かなぁ。。。

カテゴリー: ハードウェア, モバイル | タグ: , , , | コメントする

IS01用にMicroSDHC 16GB購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

Amazonにて、\3,780で。

 is01_microsd_001 is01_microsd_002

付属品のMicroSDHCが、class2っぽいから、class4にすることで2倍に!?体感的には特に変わらず。。

カテゴリー: ハードウェア, モバイル | タグ: , , , , | コメントする

Hello, world! in IS01(2)

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

Hello, world! in IS01の続き。。

エミュレータを起動するところまでは出来たので、
実際にHelloWorldなプログラムを作成する過程に入る。
ググってみたところ、
Hello, World | Android Developers
が詳しかったので(developer.android.comだからそりゃそうか。。)、このページを参考に進めていく。

まず、projectを作成する(Projectに必要なファイル一式を作ってくれる)

C:\tools\devel\Android\android-sdk-windows>mkdir src

C:\tools\devel\Android\android-sdk-windows>tools\android create project --packag
e com.example.helloworld --activity HelloWorld --target 3 --path src\HelloWorld
Created project directory: C:\tools\devel\Android\android-sdk-windows\src\HelloW
orld
Created directory C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\src\
com\example\helloworld
Added file C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\src\com\exa
mple\helloworld\HelloWorld.java
Created directory C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\res
Created directory C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\bin
Created directory C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\libs

Created directory C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\res\
values
Added file C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\res\values\
strings.xml
Created directory C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\res\
layout
Added file C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\res\layout\
main.xml
Added file C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\AndroidMani
fest.xml
Added file C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\build.xml

C:\tools\devel\Android\android-sdk-windows>dir src\HelloWorld
 ドライブ C のボリューム ラベルは 1st です
 ボリューム シリアル番号は 7C3A-0D71 です

 C:\tools\devel\Android\android-sdk-windows\src\HelloWorld のディレクトリ

2010/09/20  02:27    <DIR>          .
2010/09/20  02:27    <DIR>          ..
2010/09/20  02:27               627 AndroidManifest.xml
2010/09/20  02:27    <DIR>          bin
2010/09/20  02:27               697 build.properties
2010/09/20  02:27             3,289 build.xml
2010/09/20  02:27               382 default.properties
2010/09/20  02:27    <DIR>          libs
2010/09/20  02:27               439 local.properties
2010/09/20  02:27    <DIR>          res
2010/09/20  02:27    <DIR>          src
               5 個のファイル               5,434 バイト
               6 個のディレクトリ  14,005,301,248 バイトの空き領域

build.xml?Antが必要なのか!ってことで、Antインストール
Apache Ant – Welcome
 Apache Ant – Binary Distributions
から、apache-ant-1.8.1-bin.zipをダウンロード。

自分の環境では、C:\tools\devel\Javaに展開しました。

C:\tools\devel\Java\apache-ant-1.8.1>dir
 ドライブ C のボリューム ラベルは 1st です
 ボリューム シリアル番号は 7C3A-0D71 です

 C:\tools\devel\Java\apache-ant-1.8.1 のディレクトリ

2010/09/20  02:34    <DIR>          .
2010/09/20  02:34    <DIR>          ..
2010/09/20  02:34    <DIR>          bin
2010/09/20  02:34    <DIR>          docs
2010/09/20  02:34    <DIR>          etc
2010/04/30  18:03             7,920 fetch.xml
2010/04/30  18:03             4,566 get-m2.xml
2010/04/30  18:03               128 INSTALL
2010/04/30  18:03            77,892 KEYS
2010/09/20  02:34    <DIR>          lib
2010/04/30  18:03            15,561 LICENSE
2010/04/30  18:03               224 NOTICE
2010/04/30  18:03             4,216 README
2010/04/30  18:03           197,028 WHATSNEW
               8 個のファイル             307,535 バイト
               6 個のディレクトリ  13,960,519,680 バイトの空き領域

Installing Ant
を見ると、以下が必要らしい。
・binディレクトリをPATHに追加
・ANT_HOMEを設定
・JAVA_HOMEを設定(Optionallyって書いてるから要らないかも)

とりあえず今回は一時的に。

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>set PATH=%PATH%;C:\too
ls\devel\Java\apache-ant-1.8.1\bin

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>set ANT_HOME=C:\tools\
devel\Java\apache-ant-1.8.1

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>set JAVA_HOME=C:\tools
\devel\Java\jdk1.6.0_10

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>cd ..\..

C:\tools\devel\Android\android-sdk-windows>ant
Buildfile: build.xml does not exist!
Build failed
C:\tools\devel\Android\android-sdk-windows>ant -version
Apache Ant version 1.8.1 compiled on April 30 2010

Antのインストールは成功。
早速、Hello,worldのビルドを!

C:\tools\devel\Android\android-sdk-windows>cd src\HelloWorld

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>ant
Buildfile: C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\build.xml
    [setup] Android SDK Tools Revision 7
    [setup] Project Target: JN-DK01
    [setup] Vendor: SHARP Corporation
    [setup] Platform Version: 1.6
    [setup] API level: 4
    [setup]
    [setup] ------------------
    [setup] Resolving library dependencies:
    [setup] ------------------
    [setup] Ordered libraries:
    [setup] ------------------
    [setup]
    [setup] WARNING: No minSdkVersion value set. Application will install on all
 Android versions.
    [setup]
    [setup] Importing rules file: tools\ant\ant_rules_r3.xml

help:
     [echo] Android Ant Build. Available targets:
     [echo]    help:      Displays this help.
     [echo]    clean:     Removes output files created by other targets.
     [echo]    compile:   Compiles project's .java files into .class files.
     [echo]    debug:     Builds the application and signs it with a debug key.
     [echo]    release:   Builds the application. The generated apk file must be

     [echo]               signed before it is published.
     [echo]    install:   Installs/reinstalls the debug package onto a running
     [echo]               emulator or device.
     [echo]               If the application was previously installed, the
     [echo]               signatures must match.
     [echo]    uninstall: Uninstalls the application from a running emulator or
     [echo]               device.

BUILD SUCCESSFUL
Total time: 1 second

パラメータが必要らしい。debugを付けて。

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>ant debug
Buildfile: C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\build.xml
    [setup] Android SDK Tools Revision 7
    [setup] Project Target: JN-DK01
    [setup] Vendor: SHARP Corporation
    [setup] Platform Version: 1.6
    [setup] API level: 4
    [setup]
    [setup] ------------------
    [setup] Resolving library dependencies:
    [setup] ------------------
    [setup] Ordered libraries:
    [setup] ------------------
    [setup]
    [setup] WARNING: No minSdkVersion value set. Application will install on all
 Android versions.
    [setup]
    [setup] Importing rules file: tools\ant\ant_rules_r3.xml

-compile-tested-if-test:

-dirs:
     [echo] Creating output directories if needed...
    [mkdir] Created dir: C:\tools\devel\Android\android-sdk-windows\src\HelloWor
ld\gen
    [mkdir] Created dir: C:\tools\devel\Android\android-sdk-windows\src\HelloWor
ld\bin\classes

-pre-build:

-resource-src:
     [echo] Generating R.java / Manifest.java from the resources...

-aidl:
     [echo] Compiling aidl files into Java classes...

-pre-compile:

compile:
    [javac] C:\tools\devel\Android\android-sdk-windows\tools\ant\ant_rules_r3.xm
l:336: warning: 'includeantruntime' was not set, defaulting to build.sysclasspat
h=last; set to false for repeatable builds
    [javac] Compiling 2 source files to C:\tools\devel\Android\android-sdk-windo
ws\src\HelloWorld\bin\classes

-post-compile:

-dex:
     [echo] Converting compiled files and external libraries into C:\tools\devel
\Android\android-sdk-windows\src\HelloWorld\bin\classes.dex...

-package-resources:
     [echo] Packaging resources
     [aapt] Creating full resource package...

-package-debug-sign:
[apkbuilder] Creating HelloWorld-debug-unaligned.apk and signing it with a debug
 key...

debug:
     [echo] Running zip align on final apk...
     [echo] Debug Package: C:\tools\devel\Android\android-sdk-windows\src\HelloW
orld\bin\HelloWorld-debug.apk

BUILD SUCCESSFUL
Total time: 5 seconds

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>dir bin\HelloWorld-deb
ug.apk
 ドライブ C のボリューム ラベルは 1st です
 ボリューム シリアル番号は 7C3A-0D71 です

 C:\tools\devel\Android\android-sdk-windows\src\HelloWorld\bin のディレクトリ

2010/09/20  02:44             4,394 HelloWorld-debug.apk
               1 個のファイル               4,394 バイト
               0 個のディレクトリ  13,960,114,176 バイトの空き領域

bin\HelloWorld-debug.apk が出来た!!

そういえば、ソースは・・・?

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>type src\com\example\h
elloworld\HelloWorld.java
package com.example.helloworld;

import android.app.Activity;
import android.os.Bundle;

public class HelloWorld extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

よく分からないけど、まぁ良いか。

これを動かす方法は、
Developing In Other IDEs | Android Developers
を参考に。

まず、エミュレータ起動。

C:\tools\devel\Android\android-sdk-windows\src\HelloWorld>..\..\tools\emulator @
JNDK01 -qemu --cpu cortex-a8

エミュレータ立ち上げたコマンドプロントは応答が返ってこないので、、、
別のコマンドプロンプト立ち上げて、HelloWorld-debug.apkをインストール。
adb install HelloWorld-debug.apk でインストール出来るらしい。(ant install でも出来そうだけど。)

C:\tools\devel\Android\android-sdk-windows\tools>adb install ..\src\HelloWorld\b
in\HelloWorld-debug.apk
4 KB/s (0 bytes in 4394.001s)
        pkg: /data/local/tmp/HelloWorld-debug.apk
Success

Success出た!

でも、画面上は、、、
is01_helloworld_001
特に変化は起こらない。けど、メニューを開と・・・
HelloWorldが!
is01_helloworld_002

クリックすると、
is01_helloworld_003
おお!ソースコードどの修正とか何もしてないのに、HelloWorldの文字列が!!

完。

カテゴリー: プログラム, モバイル | タグ: , , | コメントする

Hello, world! in IS01

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

IS01上で動く「Hello, world!なプログラム」を作ってみようと思い立った。
まず、開発元のサイトSH Developers Squareを見て回る。

SH Developers Square – オープンソースソフトウェアに、IS01で使ってる、GPLなプログラムのソースが公開されていた。

SH Developers Square – SDK AddOn ダウンロードに、クイックスタートガイドなる物が!(ここで言ってるJN-DK01は、IS01ベースの開発者向け専用端末らしい。販売終了ですって。)
これに沿って行けば良い気がした。

1. アドオン(sharp_addon-JNDK01_r1.zip)をダウンロード
2. 「Android 1.6, API4」をAndroid SDK | Android Developersからダウンロード
・・・って、どれ??
よく分からないので、PlatformがWindowsとなっている、「android-sdk_r07-windows.zip」をダウンロード。
3. android-sdk_r07-windows.zipを展開
自分の環境では、↓に展開。
C:\tools\devel\Android\android-sdk-windows

C:\tools\devel\Android\android-sdk-windows>dir
 ドライブ C のボリューム ラベルは 1st です
 ボリューム シリアル番号は 7C3A-0D71 です

 C:\tools\devel\Android\android-sdk-windows のディレクトリ

2010/09/20  00:08    <DIR>          .
2010/09/20  00:08    <DIR>          ..
2010/09/20  00:08    <DIR>          add-ons
2010/09/20  00:08    <DIR>          platforms
2010/08/28  17:43           517,251 SDK Manager.exe
2010/08/30  12:25               856 SDK Readme.txt
2010/09/20  00:08    <DIR>          tools
               2 個のファイル             518,107 バイト
               5 個のディレクトリ  14,090,899,456 バイトの空き領域

4. アドオン(sharp_addon-JNDK01_r1.zip)を、add-ons配下に展開。

C:\tools\devel\Android\android-sdk-windows>dir add-ons
 ドライブ C のボリューム ラベルは 1st です
 ボリューム シリアル番号は 7C3A-0D71 です

 C:\tools\devel\Android\android-sdk-windows\add-ons のディレクトリ

2010/09/20  00:10    <DIR>          .
2010/09/20  00:10    <DIR>          ..
2010/09/20  00:10    <DIR>          sharp_addon-JNDK01_r1
               0 個のファイル                   0 バイト
               3 個のディレクトリ  14,015,401,984 バイトの空き領域

C:\tools\devel\Android\android-sdk-windows>dir add-ons\sharp_addon-J
NDK01_r1

 ドライブ C のボリューム ラベルは 1st です
 ボリューム シリアル番号は 7C3A-0D71 です

 C:\tools\devel\Android\android-sdk-windows\add-ons\sharp_addon-JNDK
01_r1 のディレクトリ

2010/09/20  00:10    <DIR>          .
2010/09/20  00:10    <DIR>          ..
2010/09/20  00:10    <DIR>          docs
2010/04/22  09:34               424 hardware.ini
2010/09/20  00:10    <DIR>          images
2010/09/20  00:10    <DIR>          libs
2010/04/22  09:34               911 manifest.ini
2010/09/20  00:10    <DIR>          skins
               2 個のファイル               1,335 バイト
               6 個のディレクトリ  14,013,816,832 バイトの空き領域

5. Android update adbは多分要らない(根拠は特になし)ので、Target IDの確認。

C:\tools\devel\Android\android-sdk-windows\tools>android list target

WARNING: Java not found in your path.
Checking if it's installed in C:\Program Files\Java instead.

ERROR: No suitable Java found. In order to properly use the Android Developer
Tools, you need a suitable version of Java JDK installed on your system.
We recommend that you install the JDK version of JavaSE, available here:
  http://www.oracle.com/technetwork/java/javase/downloads

You can find the complete Android SDK requirements here:
  http://developer.android.com/sdk/requirements.html

javaが見つからないと怒られる。
ひとまず、かなり前にインストールしたJDKのbinをPATHに追加して再度android list target。

C:\tools\devel\Android\android-sdk-windows\tools>set PATH=%PATH%;C:\tools\de
vel\Java\jdk1.6.0_10\bin

C:\tools\devel\Android\android-sdk-windows\tools>android list target
Available Android targets:

何か出てくるはずが何も出てこない。
ググってみたところ、2でダウンロードした「android-sdk_r07-windows.zip」はツールしか含まれていないらしい。
Win版SDK解凍時、webの情報との違い – Android-SDK-Japan | Google グループ
なので、SDK Managerを起動して、SDKをダウンロードすることに。

C:\tools\devel\Android\android-sdk-windows\tools>"..\SDK Manager.exe"

すると、↓こんな画面が。1.6って言ってたのでそれ以外はひとまず外す。

is01_start_001 is01_start_002

インストール完了

is01_start_003

再々度「android list target」を叩く

C:\tools\devel\Android\android-sdk-windows\tools>android list target
Available Android targets:
id: 1 or "android-4"
     Name: Android 1.6
     Type: Platform
     API level: 4
     Revision: 3
     Skins: HVGA (default), QVGA, WVGA800, WVGA854
id: 2 or "Google Inc.:Google APIs:4"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 2
     Description: Android + Google APIs
     Based on Android 1.6 (API level 4)
     Libraries:
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: WVGA854, HVGA (default), WVGA800, QVGA
id: 3 or "SHARP Corporation:JN-DK01:4"
     Name: JN-DK01
     Type: Add-On
     Vendor: SHARP Corporation
     Revision: 1
     Description: SHARP JN-DK01 Add-on
     Based on Android 1.6 (API level 4)
     Libraries:
      * jp.co.sharp.android.hardware (hardware.jar)

      * jp.co.sharp.android.io.obex (obex.jar)

     Skins: WVGA854, HVGA, WVGA800, QVGA, JNDK01 (default)
     Adds USB support for devices (Vendor: 0x04DD)

表示された!でもidは3になってるな。気にしない気にしない。

6. AVD (Android Virtual Device)の作成
AVDってなんだろ。。実行環境みたいなものかな?
android create avd -n JNDK01 -t 3 –sdcard 128M
で作るらしい。-t のパラメータは、Target id。
android list targetでJN-DK01は、3だったから3を指定。

C:\tools\devel\Android\android-sdk-windows\tools>android create avd -n JNDK01 -t
 3 --sdcard 128M
Created AVD 'JNDK01' based on JN-DK01 (SHARP Corporation),
with the following hardware config:
hw.lcd.density=240
vm.heapSize=24
hw.ramSize=256M
hw.gsmModem=no

7. エミュレータの起動
emulator @JNDK01 -qemu –cpu cortex-a8
で起動出来るらしい。(cortex-a8)

C:\tools\devel\Android\android-sdk-windows\tools>emulator @JNDK01 -qemu --cpu co
rtex-a8

is01_start_004 is01_start_005

IS01でも出てきたタッチ補正画面
is01_start_006 is01_start_007

IS01とは少々雰囲気が違うホーム画面が!
is01_start_008

Hello, world!はまだ遠い。。
そういえば、Eclipseインストールしろとか書いてた気も。

カテゴリー: ハードウェア, モバイル | タグ: , , | コメントする

IS01購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

ヤフオクにて15kくらいで。

is01_prestart_001 is01_prestart_002 is01_prestart_003 is01_prestart_004 is01_prestart_005 is01_prestart_006 is01_prestart_007

下調べせずに買ったけど、IS01 まとめ wiki – スペック辺り見ると、新規で2回線目を契約した方が良かったっぽい。新規一括で買って、SIM抜いて月々8円で2年間使えるらしい。まぁ、「スマートブック「IS01」のメール送信不具合について」で、今は買えないらしいけど。

半日ほど使ってると困ったとこばかり目立つ。

  • でかい(元々持ち歩くつもりは無いから問題はなし)
  • キーが打ちづらい(タッチタイピング出来るって書いてるけど、無理じゃね?)
    • Ctrl、ESCキーが無い。パイプが入力できない。
      アプリによっては、「トラックボール押下=Ctrl」押下としているけど、遠い
      「フルキーボード」とは名ばかり!・・・と思ったら「フルキーボードスタイル」だった。。スタイル??
      Shiftを2つ配置する理由もよく分からん。左側Ctrlにすれば良いのに。。
  • トラックボールが使いづらい
    ボールが小さいから(?)or固いから(?)、ボールの慣性を利用する(強めに転がす)ような使い方が出来ない。
  • スクリーンショットが簡単に撮れない(らしい)
    IS01 のスクリーンショットと壁紙 – コムギドットネット」を見ると、SDKが必要とか。
    iPod touchではボタン2つ押せば撮れるのに。
  • 文字入力するときに、なぜか日本語入力が自動的にONになる。

などなど。

カテゴリー: ハードウェア, モバイル | タグ: , , , | コメントする

ゴロ寝DEスクEXライト GORODEXL購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

をAmazonにて\3,697で購入。

gorone_desk_001 gorone_desk_002 gorone_desk_003 gorone_desk_004 gorone_desk_005 gorone_desk_006

2日ほど使ってみた感想は、

  • ゴロ寝って言う割に、寝ながら使うと首が痛い(半身起こすか、高い枕が無いと長時間は無理)
  • 横幅が狭くて寝返りが打てない
  • マウスパッド部が邪魔

あと、寝落ちしてバッテリーが尽きている率が100%。自業自得だけど。

カテゴリー: ハードウェア | タグ: , | 1件のコメント

Libretto L5用に、PC133 SDRAM 256MB (144pin)を購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

間違えてDIMMを。。。orz

IMG_0498 IMG_0499

深夜に眠い目を擦りながら買ったのが間違いだった。
Libretto L5は、MicroDIMMしか刺さらない。
今刺さっている128MBのMicroDIMMは↓。

IMG_0496 IMG_0497

カテゴリー: ハードウェア, モバイル | タグ: , , , , , , , | コメントする

Ecolinux-lx を InetBootで起動しインストール・・・しようとして失敗。

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

Ecolinux-lxがEcolinux-lightの後継ということで、
Libretto L5で、InetBoot + Ecolinux-lxで起動しインストールしようとしたけどダメだった。

問題1 InetBootが、isolinux/menu.cfg があれば最優先で見に行ってしまう。

InetBootは、指定されたISOイメージのURLをHTTP-FUSEでmountし、isolinux/menu.cfgを解析して、カーネルやら、bootパラメータやらの設定値を取得するような動作っぽい。
ただ、Ecolinux-lxのisolinux/menu.cfgは大したことやっていなくて、includeしているだけなので、このファイルを見てもカーネルやbootパラメータは取得できない。そこで、text.cfgをmenu.cfgにリネームして置き換えた形のISOイメージファイルを作成してしまえば先へ進める。

問題2 InetBootが、initrd.lzに対応していない。
InetBootが、initrd.lzをgzipで解凍しようとして失敗する。仕方がないのでinitrd.lzを一度展開して、gzipで圧縮し直したinitrd.gzを格納したISOイメージファイルを作成すれば先へ進める。menu.cfgのinitrd.lzをinitrd.gzに変更する必要もある。

問題3 InetBootとEcolinux-lxで、squashfs-toolsのVersionが不一致。
InetBoot:3.3-CVS
Ecolinux-lx:4.0
なので、互換性無いって怒られる。

かなり無理矢理な解決策としては、、、

Ecolinux-lxのISOイメージ内にある、casper/filesystem.squashfsを取り出して、
4.0系列のunsquashfs(squashfs-toolsに含まれるツール)で展開後、
3.0系列のmksquashfs(squashfs-toolsに含まれるツール)で圧縮。(ここで作成したファイルを、filesystem.squashfs.3とする)
このファイルを格納したISOイメージファイルを作成。
#casper/filesystem.squashfs
# casper/filesystem.squashfs.3
# の2ファイルが含まれることになる。

今度は読み込み側の修正。
InetBootが、3.3のsuquashfsファイル(filesystem.squashfs.3)を見に行くよう修正する。
Ecolinux-lx側は変更せず、オリジナルのsquashfsファイル(filesystem.squashfs)を見に行く。

minirt.gz をgzcat と cpioを使って展開

# gzip -d minirt.gz
# mkdir tmp
# cd tmp
# sudo cpio -i -H newc –no-absolute-filenames < ../minirt
# vi bin/casper-netfsboot
if ! mount -t squashfs -o loop,ro ${CDMOUNT}/${BASENAME}/filesystem.squashfs ${COMPRESSMOUNT} ;then
 ↓
if ! mount -t squashfs -o loop,ro ${CDMOUNT}/${BASENAME}/filesystem.squashfs.3 ${COMPRESSMOUNT} ;then

に修正。

# sudo find . | sudo cpio -o -H newc | gzip – > ../minirt.gz
# sudo mv /var/lib/tftpboot/InetBoot/minirt.gz /var/lib/tftpboot/InetBoot/minirt.gz.org
# sudo cp ../minirt.gz /var/lib/tftpboot/InetBoot/

で、PXEブート。

ecolinux_lx001

libblkidで怒られる。
ecolinux_lx003 ecolinux_lx004

でも先へ進む。
ecolinux_lx005 ecolinux_lx006 ecolinux_lx007

ureadheadが、status 5 で終了。(/etc/fstabが空だから?)
ecolinux_lx008

ubiquityが、status 1で終了
ecolinux_lx009

この後もう少し進んだ後、黒画面で動かなくなる。
体力の限界でEcolinux-lxも諦め。(無理矢理いじったのが影響してるかも)

カテゴリー: ソフトウェア | タグ: , , , , , | コメントする

Ecolinux-light を InetBootで起動しインストール

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

古いWidowsマシンをLinuxで蘇生させよう | ソフトウェア開発の株式会社システムフレンド
で、Ecolinux-lightなる物を知り、
たま~~~にしか使わなくなっている、Libretto L5にインストールしてみることに。
ちなみにCD-ROMドライブは無い。USB CD-ROMも無い(前持ってたけどどこかへ行った。and 探すつもりもない)
USBメモリからのブートも出来ない。(と思う)
なので、PXEブート一択。

Ecolinuxのサイトを見ると、ネットワークインストール用のファイルが無かったので、
LiveCDとして、PXEブートさせてubiquityコマンドでインストール。
を試みた。(実際は失敗したけど。。)

PXEブートの環境は、以前ESXiをインストールするときに作っているので省略。(VMWare ESXi 4.0 on NEC Express5800 S70/FLのメモ)

1. Ecolinux-lightのデータを展開 and NFSで公開するためエクスポート
ecolinux-light-8.04.7.iso をThe Ecolinux Projectからダウンロード。

# mkdir /mnt/tmp
# mount -t iso9660 /home/user/ecolinux-light-8.04.7.iso -o loop /mnt/tmp
# mkdir /var/lib/tftpboot/Ecolinux-light
# cp -a /mnt/tmp/* /var/lib/tftpboot/Ecolinux-light/
# umount /mnt/tmp

exportsファイルを編集し、NFSサーバを再起動

# cat /etc/exports
/var/lib/tftpboot/Ecolinux-light 192.168.0.1/24(async,no_root_squash,no_subtree_check,rw)
# /etc/init.d/nfs-kernel-server restart

2. PXEブートの設定を編集
# vi /var/lib/tftpboot/pxelinux.cfg/default
で、以下を追記

label Ecolinux live
kernel /Ecolinux-light/casper/vmlinuz
append initrd=/Ecolinux-light/casper/initrd.gz file=/Ecolinux-light/preseed/ubuntu.seed boot=casper netboot=nfs nfsroot=192.168.0.2:/var/lib/tftpboot/Ecolinux-light quiet splash --

3. PXEブート。
Libretto L5を起動して矢印を適当に押しておくと、起動方法を選択出来るので、
右から2番目のアイコンを選択。

ecolinux_001 ecolinux_002

この後、Ubuntuのロゴが出て、しばらく後、黒画面になって何も無し。
一時間くらい待っても何も無し。(NFSでmount出来てることは、daemon.logから確認済み。)

メモリが384MBしか無いからダメだったんだろうか。。原因は不明。

 

で、次に試したのがInetBoot。(256MB以上のメモリがあれば良いらしいという噂を聞き)

 

1. InetBootのサイトから、Kernel for GRUB(linux)とBuildRoot for GRUB(minirt.gz)を持ってくる

とりあえず、新しいlinux と minirt.gzをダウンロードして、/var/lib/tftpboot配下に格納
# mkdir /var/lib/tftpboot/InetBoot
# cp linux minirt.gz /var/lib/tftpboot/InetBoot/

2. Ecolinux-lightのISOイメージをHTTPサーバから見えるところに置く
mv /home/user/ecolinux-light-8.04.7.iso /var/www/

3. PXEブートの設定を編集
# cd /var/lib/tftpboot
# vi pxelinux.cfg/default
で、以下を追加。

label InetBoot(ecolinux-light)
kernel /InetBoot/linux
append initrd=/InetBoot/minirt.gz netdir=http://192.168.0.40/ecolinux-light-8.04.7.iso type=casper quiet splash --

4. PXEブート。
InetBoot(ecolinux-light) を選択。

ecolinux_003

ecolinux_004 ecolinux_005 ecolinux_006

ecolinux_007 ecolinux_008 ecolinux_009 ecolinux_010 ecolinux_011 ecolinux_012 ecolinux_013 ecolinux_014

 

起動した!!

ecolinux_015

 

早速Terminal立ち上げてubiquityコマンド叩いてHDDにインストール。

ecolinux_016 ecolinux_017 ecolinux_018 ecolinux_019 ecolinux_020

LibrettoのWindows領域全てつぶしてインストールすることにした。

ecolinux_021 ecolinux_022

ecolinux_023 ecolinux_024

インストールをクリックするともう戻れない。

ecolinux_025 ecolinux_026 ecolinux_027

インストール成功。

ecolinux_028

すぐに再起動を選択したのに、何故か再起動しなかったので、
電源長押しにより電源断後、無理矢理再起動。

なんとか成功!!

ecolinux_029 ecolinux_030

SynapticでFirefoxインストールして立ち上げてみた。

ecolinux_031 ecolinux_032

Windows XPよりは段違いに軽いけど、驚くべき程軽くは無い。
Libretto L5が非力すぎなのかも。

カテゴリー: ソフトウェア, モバイル | タグ: , , , , , | コメントする