android 卸载apk删除app文件夹下的apk是不是就等于卸载程序了?

系统检测到您的帐号可能存在被盗风险,请尽快
,并立即
。 | 网易博客安全提醒:
系统检测到您当前密码的安全性较低,为了您的账号安全,建议您适时修改密码 | | 我思故我在的博客
哲学/军事/科学技术思想交流
导航 日志 如何在Android模拟器上***和卸载APK程序包
2011-02-07 19:07:02
| 分类:
| 标签:
小 什么是APK文件? 它和android手机是什么关系?
APK是Android Package的缩写,即Android***包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可***。
  APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
  一个APK文件结构为:
  mete-INF Jar文件中常可以看到
  res 存放资源文件的目录
  AndroidManifest.xml 程序全局配置文件
  cla es.dex Dalvik字节码
  resources.arsc 编译后的二进制资源文件
  总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。
  在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permi ion分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/a 文件夹下会发现执行是不受限制的。最终我们平时***的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
***APK
  首先,将模拟器执行起来,直到正式进入系统。
  接下来,打开一个cmd窗口,路径切换到模拟器目录下的tools目录。
  输入:adb i tall 你要***的apk文件的路径。
  如果看到一行显示传输速度的文字,那说明***成功了。
  adb i tall HelloAndroid.apk
  591 KB/s (180315 bytes in 0.297s)
  pkg: /data/local/tmp/HelloAndroid.apk
  Succe   回到Android模拟器的界面,本来以为可以看到刚刚***的APK程序图标,结果,却根本没有…后来研究了一下,发现这根APK包自身有关。具体 原因是来自于AndroidManifest.xml文件的内容:
   ?xml version="1.0" encoding="utf-8"?
   manifest xml :android="http://schemas.android.com/apk/res/android"
  package="org.goo .android.hello"
  android:versionCode="1"
  android:versionName="1.0"
   a lication android:icon="@drawable/icon" android:label="@string/a _name"
   activity android:name=".HelloAndroid"
  android:label="@string/a _name"
   intent-filter
   action android:name="android.intent.action.MAIN" /
   category android:name="android.intent.category.LAUNCHER" /
   /intent-filter
   /activity
   /a licatio gt;
   uses-sdk android:minSdkVersion="6" /
   /manifest
  注意其中的category行定义,它表示这个apk属于哪个归类里,如果不正确的填写这个信息,Launcher将不会将其显示在桌面上,因为它 会认为这个应用部署以自己的归类。
  那么,是不是我们就无法执行缺失了category的apk了呢?
  后来,在一个老外的blog上,查到了方法:在shell内使用am来加载android应用:
  usage: am [start|i trument] am start [-a ] [-d
   DATA_URI] [-t MIME_TYPE] [-c CATEGORY [-c
   CATEGORY] ...] [-e EXTRA_KEY EXTRA_VALUE [-e
   EXTRA_KEY EXTRA_VALUE ...] [-n COMPONENT]
  [ URI] am i trument [-e ] [-p ] [-w] COMPONENT
  比如启动一个manifest为如下内容的apk:
   ?xml version="1.0" encoding="utf-8"?
   manifest xml :android="http://schemas.android.com/apk/res/android"
  package="net.xiashou.android"
   a lication android:icon="@drawable/icon" android:label="@string/a _name"
   activity android:name=".HelloAndroid" android:label="@string/a _name"
   intent-filter
   category android:name="android.intent.category.LAUNCHER" /
   /intent-filter
   /activity
   /a licatio gt;
   /manifest
  使用的指令为:
  adb shell
  am start -n net.xiashou.android/net.xiashou.android.HelloAndroid
  还有一些很有用处的用法:
  直接启动浏览器打开一个网址:
  am start -a android.intent.action.VIEW -d http://www.xiashou.net
  拨打***:
  am start -a android.intent.action.CALL -d tel:10086
  启动google map直接定位在天津:
  am start -a android.intent.action.VIEWgeo:0,0?q=tianjin
  卸装APK
  与***类似,卸载是利用adb执行一个卸载指令:
  adb shell rm data/a /org.goo .android.hello.apk
  # 上面的命令可拆解成:
  adb shell
  rm data/a /org.goo .android.hello.apk
  可以看出Android系统是将第三方应用放在data/a 目录内的。org.goo .android.hello.apk的***目录可以 通过下面的命令查询:
  adb shell
  ls data/a   也可以通过Android主菜单-设置-应用程序-管理应用程序,选择相应的应用程序,并在打开的界面中点击”卸载”按钮来删除已***的apk软件 包。
  补充一点:
  卸载最好用android 中的setting-a lication manage进行卸载,否则下次***会出错。
  【一些思考】
  因为模拟器内运行的是一个内存文件系统,也就是说,你***的apk文件,在模拟器被关闭后,也就不再存在了(它实际上是被***到内存里)。所以,下次启动模拟器,依然需要再次***APK。然后,实际测试结果并非如此...于是打开AndroidSDK目录发现,toolslibimages的文件都被更新了。原来Android模拟器是将他的内存系统实时dump到img中保存下来的。
  还有一个特别有意义的发现,是从adb shell rm而来的思考。rm本身是linux的一个文件删除指令,加上前面的shell关键字,会不会adb shell直接就能打开一个linux终端呢?实测结果果然如此!不过,Android的linux shell显然做了很多精简,大量的linux常用指令都不支持。
  更多关于adb详细的使用,可以使用adb help指令来查看。 评论这张
转发至微博
人 | 分享到: 阅读(
举报 历史上的今天
相关文章
最近读者
this.p={
id:'fks_09407008208208007508408308109508708408***084085095070',
blogTitle:'如何在Android模拟器上***和卸载APK程序包',
blogA tract:'
什么是APK文件? 它和android手机是什么关系?
APK是Android Package的缩写,即Android***包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可***。
  APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
  一个APK文件结构为:
  mete-INF Jar文件中常可以看到
  res 存放资源文件的目录
  AndroidManifest.xml 程序全局配置文件
  cla es.dex Dalvik字节码
blogTag:'',
blogUrl:'blog/static/3206039520111777235',
isPublished:1,
istop:false,
type:0,
modifyTime:1297077282944,
publishTime:1297076822035,
permalink:'blog/static/3206039520111777235',
commentCount:0,
mainCommentCount:0,
recommendCount:0, rk:-100,
publisherId:0,
recomBlogHome:false,
attachmentsFileIds:[],
vote:{},
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'河北',
visitorCity:'廊坊',
isWeekend:true,
taobaoVersion:6,
taobaolink:"http://g.163.com/a?CID=4399&Values=3931351846&Redirect=http://ju.atpanel.com/?url=http://www.tmall.com/?ad_id=100040497852881d4a61&am_id=&cm_id= m_id=",
taobaobgimage:"http://blog.163.com/newpage/images/taobaolayerbg5.jpg",
mset:'000',
mcon:'',
srk:-100,
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false
{list a as x}
{if !!x}
{if x.moveFrom=='wap'}
{/list}
{if !!a}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
{if !!x}
{/list}
推荐过这篇日志的人:
{list a as x}
{if !!x}
{/list}
{if !! .length>0}
他们还推荐了:
{list b as y}
{if !!y}
{/list}
引用记录:
{list d as x}
{/list}
{list a as x}
{if !!x}
{/list}
{list a as x}
{if !!x}
{/list}
{list a as x}
{if !!x}
{/list}
{list a as x}
{if x_index>9}{break}{/if}
{if !!x}
${fn2(parseInt(x.date),'yyyy-MM-dd HH:mm: ')}
{/list}
{list a as x}
{if x_index>4}{break}{/if}
{if !!x}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm: ')}
{/list}
最新日志
该作者的其他文章
博主推荐
相关日志
随机阅读
首页推荐 {list a as x}
{if !!x} 投票给
{var first_option = true;}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if} “${b[voteToOption_index]}” {/if}
{/list}
{if (x.role!="-1") },“我是${c[x.role]}” {/if} ${fn1(x.voteTime)}
{if x.userName==''}{/if}
{/list} 页脚
- 网易公司版权所有 copy;1997-2011 {list wl as x}
{list x.l as y}
{/list}
{/list}
{if defined('wl')}
{list wl as x}
{/list}root后想清除手机自带的无用的程序,删除system/a 下的apk文件与卸载有什么区别么?
当前离线
0 GTalk 阅读权限
10 在线时间
4 小时 注册时间
2011-6-16 最后登录
2011-6-24 A1.安卓人工智能
12 积分
1 手机型号
中兴V880 注册时间
2011-6-16 最后登录
2011-6-24 字体大小:
发表于 2011-6-21 16:33
root后想清除手机自带的无用的程序,删除system/a 下的apk文件与卸载有什么区别么?
诸位好,小弟刚接触安卓的手机系统,已经root了,想清除手机上订制的无用的程序,请问删除system/a 下的apk文件与用系统程序卸载器卸载软件哪个能彻底的清除程序啊?直接删除该程序的apk文件,手机系统中会不会还有该程序的残留文件啊?安卓的手机系统,删除apk文件=卸载么?谢谢了,感谢您们的耐心回答.
当前离线
0 GTalk 阅读权限
10 在线时间
34 小时 注册时间
2011-1-25 最后登录
2011-6-26 A1.安卓人工智能
59 积分
12 金币
0 手机型号
502 注册时间
2011-1-25 最后登录
2011-6-26 发表于 2011-6-21 16:38
没啥区别,一样的
当前离线
0 GTalk 阅读权限
40 在线时间
757 小时 注册时间
2010-5-13 最后登录
2011-7-30 A4.安卓机器猫
1330 积分
597 金币
661 手机型号
g6 注册时间
2010-5-13 最后登录
2011-7-30 发表于 2011-6-21 16:44
谢谢分享。。。
当前离线
2 GTalk 阅读权限
20 在线时间
467 小时 注册时间
2010-7-12 最后登录
2011-7-27 A2.安卓瓦力
488 积分
112 金币
11 手机型号
三星 i7500 注册时间
2010-7-12 最后登录
2011-7-27 发表于 2011-6-21 16:52
本帖最后由 ekinzhl 于 2011-6-21 16:54 编辑
删除apk文件和卸载的效果是一样的,不过大部分在系统里都还有残留文件,要想清除干净,得用R.E管理器在根目录下搜索apk软件,搜索出来的全部删除即可。
不过,搜索apk时,apk的名称并不是软件列表里的名称,要到R.E中data/a 里找到你要删除的程序(从缩略图看),他的名称才是真正要搜索删除的,另外也要把sd卡上软件建立的文件夹也删了。系统自带软件过程一样,不过要到system/a 里找。
我是这么删软件的
当前在线
0 GTalk 阅读权限
30 在线时间
460 小时 注册时间
2010-11-26 最后登录
2011-7-31 A3.安卓小绿人
763 积分
342 金币
379 手机型号
HTC-G7 注册时间
2010-11-26 最后登录
2011-7-31 发表于 2011-6-21 17:14
删除apk文件和卸载的效果是一样的
当前离线
2 GTalk 阅读权限
40 在线时间
373 小时 注册时间
2010-6-17 最后登录
2011-7-30 A4.安卓机器猫
598 积分
467 金币
681 手机型号
Samsung Anycall GALAXY GT-I7500H White Silver 注册时间
2010-6-17 最后登录
2011-7-30 发表于 2011-6-21 17:21
好像没甚么区别
当前离线
0 GTalk 阅读权限
40 在线时间
103 小时 注册时间
2011-3-23 最后登录
2011-6-28 A4.安卓机器猫
1484 积分
509 金币
424 手机型号
G9 注册时间
2011-3-23 最后登录
2011-6-28 发表于 2011-6-21 17:58
谢谢分享 帮顶
当前离线
0 GTalk 阅读权限
40 在线时间
242 小时 注册时间
2011-3-21 最后登录
2011-7-30 A4.安卓机器猫
2909 积分
783 金币
402 手机型号
G7 注册时间
2011-3-21 最后登录
2011-7-30 发表于 2011-6-21 18:32
什么也没看到,是什么软件?是我太快了吗?
当前离线
0 GTalk 阅读权限
20 在线时间
44 小时 注册时间
2011-7-2 最后登录
2011-7-30 A2.安卓瓦力
83 积分
68 金币
103 手机型号
中兴V880 注册时间
2011-7-2 最后登录
2011-7-30 发表于 2011-7-8 08:53
RE在根目录上找不到任何apk啊
当前离线
0 GTalk 阅读权限
10 在线时间
11 小时 注册时间
2011-5-27 最后登录
2011-7-24 A1.安卓人工智能
39 积分
18 金币
20 手机型号
i909 注册时间
2011-5-27 最后登录
2011-7-24 发表于 2011-7-10 02:15
学习中!!!!!
当前离线
0 GTalk 阅读权限
10 在线时间
2 小时 注册时间
2011-7-13 最后登录
2011-7-30 A1.安卓人工智能
10 积分
35 金币
66 手机型号
HTC Incredible S 注册时间
2011-7-13 最后登录
2011-7-30 发表于 2011-7-14 16:31
不断学习,不断精简,不断删除!
当前离线
0 GTalk 阅读权限
10 在线时间
4 小时 注册时间
2011-7-14 最后登录
2011-7-20 A1.安卓人工智能
0 手机型号 注册时间
2011-7-14 最后登录
2011-7-20 发表于 2011-7-14 17:04
学习学习再学习...
当前在线
0 GTalk 阅读权限
10 在线时间
8 小时 注册时间
2011-7-10 最后登录
2011-7-31 A1.安卓人工智能
41 积分
26 金币
35 手机型号
x8 注册时间
2011-7-10 最后登录
2011-7-31 发表于 2011-7-14 17:55
谢谢分享学习了如何把一个软件的a 弄进系统a 文件夹?***包不是apk吗?a 是怎么弄的?我是android系统
悬赏分:0
解决时间:2011-3-29 17:47
提问者:
最佳***
DATA的APP吗? 如果是 那好象是你***的软件.***后,就在APP里面了啊??
分享给你的朋友吧:
对我有帮助
回答时间:2011-3-15 16:58
回答者:
擅长领域:
参加的活动:
暂时没有参加的活动
相关内容
2011-2-22
2011-3-11
2010-11-19
2011-3-12
2011-3-18
分享到:
用户名:
记住我的登录状态
2011 Baidu

参考资料

 

随机推荐