有些apk由于没有写<category android:name="android.intent.category.LAUNCHER" />这句话,导致在apk安装后桌面没有图标,无法运行程序。这个时候可以通过两种办法,一种在代码中activity的<intent-filter >中添加上面的那句话,重新编译。另外一种是通过adb 启动某个activity。如:在AndroidManifest.xml中查找到包名(假设为com.android.sales),然后再找到要打开的activity(假设为SalesActivity), 运行adb shell am start -n com.android.sales/com.android.sales.SalesActivity即可。
安装apk有两种方式,一种是adb push Demo.apk system/app, 另外一种是adb install Demo.apk, 如果手机里已经存在这个apk了,可以abd isntall -r Demo.apk.
第一种push的方式不一定能安装上,遇到过push进去后运行程序时,资源找不到,其实是没有安装成功,这个时候需要用install的方式。
adb install Demo.apk之后会安装在data/app/目录下面,apk名有可能会改成了com.android.Demo.apk,这时候就不能用adb uninstall Demo.apk卸载了,需要用adb unstall com.android.Demo来进行卸载。
在adb install的时候,有时候安装失败,提示Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE],这个需要进行签名。签名的方法如下:
java -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/common/platform.x509.pem build/target/product/security/common/platform.pk8 /local/Demo.apk
/local/Demo_signed.apk 然后安装Demo_signed.apk就行了。
有的时候install之后,会提示WARNING: linker: libmp4enc_sa.ca7.so has text relocations. This is wasting memory and is a security risk. Please fix. 这样可以
adb push /local/rio5_new/out/target/product/rio_5/system/lib/libmp4enc_sa.ca7.so system/lib,将最新编出来的库导入到system/lib下面。