使用adbinstall安装步骤和注意事项

上传人:公**** 文档编号:504357355 上传时间:2023-09-28 格式:DOC 页数:10 大小:27KB
返回 下载 相关 举报
使用adbinstall安装步骤和注意事项_第1页
第1页 / 共10页
使用adbinstall安装步骤和注意事项_第2页
第2页 / 共10页
使用adbinstall安装步骤和注意事项_第3页
第3页 / 共10页
使用adbinstall安装步骤和注意事项_第4页
第4页 / 共10页
使用adbinstall安装步骤和注意事项_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《使用adbinstall安装步骤和注意事项》由会员分享,可在线阅读,更多相关《使用adbinstall安装步骤和注意事项(10页珍藏版)》请在金锄头文库上搜索。

1、1、下载安装android SDK,可通过浏览器或者相关手机软件下载软件下载需要安装的apk安装文件,把apk文件放到android-sdk-windowsplatform-tools下2、可通过adb相关的命令来启动或者在Eclipse下启动虚拟机,或者通过USB与真机连接3、使用cmd进入android-sdk-windowsplatform-tools目录4、输入 adb install xxx.apk 如果有开启多个虚拟机或者连接了真机,可使用adb devices显示当前android的机器和abd -s emulator 555XX install xxx.apk进行安装5、在CM

2、D提示SUCEESS后,可在android虚拟机可找到安装成功的应用我在安装的时候就遇过以中文名称的apk,安装时报错了Segmentation fault, pm install /data,把apk的文件名改为英文名称,就成正常安装了把apk安装文件放到进入android-sdk-windowsplatform-tools目录,能防止在CMD上安装显示成功,但在虚拟器上未能看到已经安装附:下面为网上收集的相关资料:apk安装常见出错解决方法:1. 无法识别设备adb kill-server然后再adb start-server2. Segmentation fault, pm instal

3、l /data直接使用adb向模拟器中安装app时报这个错误。原因很简单,使用豌豆荚下载下来的app很多是用中文命名的,改成英文名重新adb install. 至于为什么,我想设计adb的工程师们根本没有考虑中文支持吧。3.Failure INSTALL_PARSE_FAILED_NO_CERTIFICATES这个问题出现的背景要说明一下:下载了某app,往里面加了点东西,然后重新打包使用adb install安装。这是由于Android应用程序的自签名机制导致的。Android 系统不会安装运行任何一款未经数字签名的apk程序,无论是在模拟器上还是在实际的物理设备上。Android的开发工具

4、(ADT插件和Ant)都可以协 助开发者给apk程序签名,它们都有两种模式:调试模式(debug mode)和发布模式(release mode)。如果要正式发布 一个Android App,必须使用一个合适的私钥生成的数字证书来给程序签名 ,而不能使用adt插件 或者ant工具 生成的调试证书来发布。签名的作用1. 发送者的身份认证。由于开发商可能通过使用相同的 Package Name 来混淆替换已经安装的程序,以此保证签名不同的包不被替换2. 保证信息传输的完整性。签名对于包中的每个文件进行处理,以此确保包中内容不被替换。要解决这个错误,需要点专用工具,看雪上比较多,我就不再此贴出来了。

5、4.Failure INSTALL_FAILED_UPDATE_INCOMPATIBLE在“卸载”app时,没有通过应用程序管理器卸载,而是直接通过adb删除了/data/app中的相应包。这中方式“卸载”是不彻底的,因为程序安装后还会在其他地方,比如/data/data中建立相关的目录和文件。在设置-应用程序-管理应用程序里,找到要卸载的app,进行卸载。卸载后再次安装,就不会再出现这个错误了。5. Failure INSTALL_FAILED_DEXOPT在android4.0源码里面编译出来apk后,用adb install 安装时,报错INSTALL_FAILED_DEXOPT。z:i

6、cs-androidics-srcouttargetproductgenericsystemappadb install NativeTimer.apk28 KB/s (10166 bytes in 0.344s) pkg: /data/local/tmp/NativeTimer.apkFailure INSTALL_FAILED_DEXOPT原来在systemapp下面的apk是经过优化的,而dex文件不会打包到apk中,dex文件会被优化后,生成odex文件。z:ics-androidics-srcouttargetproductgenericsystemappNativeTimer.ap

7、kz:ics-androidics-srcouttargetproductgenericsystemappNativeTimer.odex这样安装apk时,就会缺少dex文件,导致报错INSTALL_FAILED_DEXOPT。解决办法:找到未优化过的apk,即z:ics-androidics-srcouttargetproductgenericobjAPPSNativeTimer_intermediatesadb install package.apk.unaligned70 KB/s (138806 bytes in 1.912s) pkg: /data/local/tmp/package

8、.apk.unalignedSuccessFailure6.adb push out of memory最近做个东西,要修/system/etc/下的hosts文件,目的是通过域名访问内网的服务器,进行手机与内网的测试,这里要说的是如果是连接外网,并不需要如此做法,正因为我们要做测试,不可能用外网,是测成功了再连外网做法是先在电脑上写好hosts文件内容,如下:127.0.0.1 保存好文件后,通过如下命令进行上传(要有Root权限,即你曾刷过ROM):adbremountadb push d:hosts /system/etc之后进入shell模式下查看是否上传成功adb 如果出现的IP地址

9、是192.168.0.100表示上传hosts文件成功了。说到这里,大家可能很想骂我,与题目不符,现在就是出现问题的时候了,这个文件是上传了,当我每次修改代码再装到手机上运行时,就连不上了,搞了半天,原来上传的hosts文件其实并没有持久化到手机系统上的,只是内容载到内存中,装新应用或者重启机子后,就没了。好!那我再次上传hosts文件,就报出:out of memory 这样的错了,必须要重启手机,才能再次push,这真是太麻烦了,改一次代码就要重启,这算什么嘛在网上找了几天了,解决办法都是针对模拟器的,真机上出的还是没找到,今天看了论坛上有人要删除系统下的文件,我就看看了,有收获,解决办法

10、是:在recovery状态下连接手机,并进入advance -mount/system,在PC端CMD中输入以下命令:adbremountadb push d:hosts /system/etc之后重新启动,启动之后进入shelladb shellcd /system/etccat hostsOK,成功打出了修改过的内容,而不会再丢失了,是真得改到手机的Linux系统上了。看了论坛的内容也贴出来,是讲删除系统文件在recovery状态下连接手机,并进入advance -mount/system,在PC端CMD中输入以下命令:adb shell cd /system/app ls 查找到你要删除

11、的文件(如Talk.apk)将其删除之: rmTalk.apk(如果还有同名的只是后缀不同,也可以用Talk.*) 重启手机就OK了7. 系统文件删除无权限mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /systemchmod 777/system/app今天下午,我在打开whatsapp的时候,破玩意儿又提示我有新版本要不要更新,于是我选择了Yes。经过缓慢的安装之后,忽然提示我installed unsuccessful。我一下脑袋就大了,我是安装的没有修改的官方包,更新又是自动下载的,为什么还会出现这种情况?于是我怀疑可能是官方更改

12、了证书,所以需要卸载之后重新安装。于是我打开Drawer准备重新启动whatsapp。没想到虽然whatsapp的图标出现在drawer里面,但是启动的时候却提示我没有安装这个app!我靠,这还了得,于是我将whatsapp卸载了,然后试图重新安装新版。还是提示我不能安装!于是我使用adb再次尝试安装,提示我INSTALL_FAILED_DEXOPT,Google之后发现dexopt根本就不是一个单词,应该是dex和optimize的合成缩写。那么有可能是apk文件包里面的dex文件损坏,于是我把它反编译了出来,尝试重新编译。但是不知道这个东西是用什么编译的,smali根本就不能重新编译回去只

13、能作罢。所以假设问题还是出现在手机端。Google了一下,发现这个问题应该是出现在生成dex文件时候发生的错误,但是能搜索到的结果有许多是说由于G1机身空间太小导致的,显然同样的问题不可能出现在刚刚做完app2sd的milestone上面。但是我搜索到了一个如果强制完全卸载app的文章,里面介绍了安装app之后,相关文件分布的路径。所以我的思路就很清晰了,首先完全卸载,再行安装。经过试验,发现果然可行!那么提炼一下,可以得出这类问题的通用解决思路。假设该app名为ketech,安装包名为ketech.apk。1. 查看/data/app里面是否有名称包含ketech的apk或zip包,有可能为

14、类似com.android.ketech.apk或com.android.ketech.zip的形式,有则删掉。2. 查看/data/app-priviate里面是否有名称包含ketech的apk,名称形式同上,有则删掉。(做了app2sd的朋友可能还需要查看一下app2sd文件夹里面是否含有此apk包)3. 查看/data/data下面是否有名称包含ketech的文件夹,名称形式类似于com.android.ketech,有则删掉。4. 查看/data/system下面的package.xml文件,将包含ketech的项目删掉。5. Wipe Dalvik缓存。(方式多样,有些openrecovery自带,就不进行详细解释了)6. 重新安装即可。替代方案单改单个模块下的Android.mk加入LOCAL_DEX_PREOPT := falsemm后在out目录下找到相应apk直接push到/system/app当然之前要删除要替换的的*.apk *.odex版权声明:本文为博主原创文章,未经博主允许不得转载。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号