消失的 APK

Android 的 adb (Android Debug Bridge) 是個非常好用的工具, 基本上它代替了我以前常用的 tftp (Trivial File Transfer Protocol) – 改為 push 和 pull, 甚至可以從 PC install APK 到板子上. 此外, install 的線路可以選 USB 或是網路 (包括有線或無線).

如果對這個東西完全沒有概念, 可以想像在開發 SOC 的主機上安裝了一個 adb tool, 它與 Abdroid SOC 上的 adb "內奸" 建立連結之後, 就可以對 SOC 下達各種指令. 嗯, 聽起來像是木馬病毒…

關於 adb 的詳細用法, 可以參考下面的網站.

[安裝有關]

如何取得Android SDK並使用adb指令

[使用有關]

常用的 Android 指令與模擬器參數

網路使用 adb

不過最近很困擾的是, adb 跟我說安裝成功的 apk, 在平台上卻找不到? 如果安裝不成功也就罷了! 可能是連結失效 (error: device not found 或是 wait for device). 只要執行

adb kill-server

接著全部重來一次即可 (可用 adb startserver). 但說好的 apk 不見了還真是神奇? Google 了一下, 有位老兄的遭遇和我類似.

push apk以后找不到应用程序

但他是 push 到 /system/app, 第一次重啟後 Android 會對它做優化, 所以還能夠解釋. 但我應該是安裝到 /data/app, 狀況相對單純. 看來剩下兩個可能:

1. 相容性問題: 因為 apk 不相容, 所以不出現. 下次再試試

adb -s 172.2X.X.X:5555 install -r xxx.apk

2. 辦公室裡面有另外一塊板子的 IP 和我一樣, 我的 apk 全部安裝給他了??? 這個機率也不能說沒有, 哈!

[20120918 更新]

果然是因為板子的 DHCP 拿到的 IP 變了, 從 x.x.x.240 變成 x.x.x.211, 所以我的 APK 安裝到同事的板子上了. 還好七月已經過了, 不然發現板子突然生出幾個 APK 應該會嚇到!

如果要換一個安全的 IP, 首先手動修改 MAC address, 接著重新要一次 IP.

ifconfig eth0 hw ether 00:11:22:33:44:55

udhcpc -i eth0

Console 的回應舉例如下:

udhcpc (v1.19.4) started
Sending discover…
Sending select for 172.21.40.xxx…
Lease of 172.21.40.xxx obtained, lease time 216000

ifconfig eth0 172.21.40.xxx, 將 IP 更新.

[20130816 更新]

在 device 端打開網路 adb 的標準動作是:

setprop service.adb.tcp.port 5555

stop adbd

start adbd

如果使用 USB, 就把第一行換成:

setprop service.adb.tcp.port -1

 

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>