`
825288003
  • 浏览: 110634 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

[Android] 如何将应用程序转移到SD卡

 
阅读更多
其实也只是将程序里的.apk文件移动到sd卡上,其它的文件还在data文件夹下。
将应用程序安装在SD卡上是Android 2.2(code name Froyo)新增的功能。应用程序转移到SD卡,可以很大程度地避免/data空间不足的状况。因为用户所安装的应用程序都是安装在/data分区下的(我的HTC Wildfire /data分区是175MB),随着应用程序的数量逐渐增加,/data分区的空间势必逐渐减小,那么何不好好利用有着更大空间的SD卡呢,要知道,现在的SD卡4GB,8GB,甚至16GB都已经很普遍了。在Android 2.2上,这个功能被加入进来了。这个功能的实现很简单,但同时也有些地方需要注意一下。

      这里先介绍如何将已安装的应用程序转移到SD卡:

1. 在home页,按下menu键,然后选择”设置”,并依次进入”应用程序 –> 管理应用程序”,这时你会看到以下画面。其中第一栏的”已下载”里包含着所有由用户所安装的应用程序。

   

2. 点击”已下载”里的应用程序,如果该应用程序允许被移动到SD卡,会有一个白色可点击的”移至SD卡”按钮,点击这个按钮,系统就会将该应用程序移动到SD卡了。

   

3. 返回到”管理应用程序”界面,点击最右侧的一栏”SD卡中”,可以看到所有被移动到SD卡的应用程序。

   



      以下是需要注意和了解的地方:

1. 应用程序的默认安装位置是在开发过程中在manifest的”android:installLocation”里声明的,它的值可以是"preferExternal" 和"auto"。如果选择"preferExternal",那么应用程序默认会被安装在SD卡(但如果SD卡空间不足,那么应用程序仍将被安装在ROM中),如果是”auto”,则会由系统自动判断应用程序安装的位置。

2. 根据Android开发文档,应用程序被移动到SD卡后,应用程序的性能并不会有什么影响。但是我的疑问是:系统下的分区文件系统(一般是yaffs,yaffs2)和SD上的分区文件系统(一般是FAT32)不同,这一点也不会影响性能吗?

3. 并不是这个应用程序的所有文件都被转移到SD卡了,而是只有.apk文件被转移到SD卡,而其他的.dex,数据库等一些文件仍然会留在/data分区。

4. 转移到SD卡的应用程序只能在一个Android设备上使用,而不能拿到其他设备上使用。

5. 当用户通过USB数据线将Android设备与电脑连接起来,并且USB连接方式是”磁盘驱动器” 时,运行在SD卡上的应用程序会被立马结束。

6. 不是所有的应用程序都应当安装在SD卡上,比如输入法,动态桌面等等,详细情况请参考引文。



这里以estrong taskmanager为例来研究Android下App安装的位置以及App移动到SD卡的情况。

研究方法:

1. 在App安装前,安装后,移动后,分别使用adb shell ls -R <path> > <file>将对应路径下的所有文件保存下来,这里的path是/data和/mnt;

2. 通过文件比对工具(Linux下用Meld,Windows下WinMerge)对这些文件进行比对,以查看前后的差异。

以下是实验结果:

App安装后的变化

/data目录下多出文件如下:

/data/app/com.estrongs.android.taskmanager-1.apk

/data/data/com.estrongs.android.taskmanager/cache/

/data/data/com.estrongs.android.taskmanager/cache/webviewCache/

/data/data/com.estrongs.android.taskmanager/databases/

/data/data/com.estrongs.android.taskmanager/databases/webviewCache.db-journal

/data/data/com.estrongs.android.taskmanager/databases/etm_info.db

/data/data/com.estrongs.android.taskmanager/databases/webviewCache.db

/data/data/com.estrongs.android.taskmanager/databases/webview.db

/data/data/com.estrongs.android.taskmanager/shared_prefs/

/data/data/com.estrongs.android.taskmanager/shared_prefs/google_ads.xml.xml

/data/data/com.estrongs.android.taskmanager/shared_prefs/com.estrongs.android.taskmanager_preferences.xml

/data/data/com.estrongs.android.taskmanager/shared_prefs/ignore_list.xml

/data/data/com.estrongs.android.taskmanager/lib/

/data/dalvik-cache/data@app@com.estrongs.android.taskmanger-1.apk@classes.dex

另外,可能发生改变的文件有:

/data/data/com.htc.launcher/share_prefs/WidgetPackageManager.xml

App移动到SD card后的变化

/data目录减少的文件如下:

/data/app/com.estrongs.android.taskmanager-1.apk

/data目录发生变化的文件如下:

原/data/dalvik-cache/data@app@com.estrongs.android.taskmanger-1.apk@classes.dex

变成/data/dalvik-cache/mnt@asec@com.estrongs.android.taskmanger-1@pkg.apk@classes.dex

/data目录可能发生变化的文件如下:

/data/system/appwidgets.xml

/mnt目录多出的文件如下:

/mnt/asec/com.estrongs.android.taskmanager-1/

/mnt/asec/com.estrongs.android.taskmanager-1/pkg.apk

/mnt/secure/asec/com.estrongs.android.taskmanager-1.asec


分享到:
评论

相关推荐

    程序移动到SD卡3.7.2

    Link2SD是一款能让android 1.6系统以上的用户将应用程序移动到的SD卡上,需要root权限支持,其实就是Link2SD挂载的ext2为/data/sdext2你的SD卡分区,使android系统在开机时挂载它,实现移动程序功能!是款不错的小...

    卓帆暴力应用转移

    ROOT用户专用,将更多的应用程序转移到SD卡,秒杀同类应用转移产品!(Android2.2及以上,关于什么是ROOT请见下方备注) 本软件可以帮助ROOT用户将更多应用(包括那些被标记为只安装到手机的应用)转移到SD卡上...

    Android开发资料合集-World版!

    9.46、将程序安装到SD卡 268 9.47、创建一个SD映像 269 9.48、查看手机内存存储 269 9.49、在模拟器上调试GOOGLE MAPS 271 9.50、建立GPRS连接 273 9.51、获取手机位置 274 9.5* 获得经纬度,地名标注在地图上 274 ...

    Android 开发技巧

    9.46、将程序安装到SD卡 268 9.47、创建一个SD映像 269 9.48、查看手机内存存储 269 9.49、在模拟器上调试GOOGLE MAPS 271 9.50、建立GPRS连接 273 9.51、获取手机位置 274 9.5* 获得经纬度,地名标注在地图上 274 ...

    Android开发资料合集--续

    将图片保存到SD卡上 50 26、TextView垂直滚动 51 27、判断某服务是否开启 56 28、判断SD卡是否已挂载 56 29、文件操作类 57 1、获得文件或目录的大小 57 2、递归删除目录或文件 57 30、手动更新所有Widget 58 31、...

    Guarda-android-wallets:适用于Android的移动加密货币钱包

    这些应用程序还包括一个选项,可以通过内置的Exchange服务使用银行卡和充值的钱包购买硬币。 Guarda不存储我们客户的任何个人信息,钱包数据或私钥。 私钥存储在移动设备的安全存储器中,如果用户从钱包中注销,则...

    YYjia安卓应用市场网站系统(YYjiacms) v2.1 正式版

    目前市场上的应用市场都忽略了用户中心的重要性,YYjiaCMS将开发者中心全面升级为用户中心,能降低内容生产门槛,让普通用户也能贡献内容。 实时应用评论 完美体验 自动搜索调用应用的所有评论,实时同步。更大的...

    Tasker_Pro_v5.9.2_beta3.apk

    *触发器:应用程序,时间,日期,位置,硬/软状态,事件,快捷方式,小部件,计时器,插件 *操作:200多种内置功能,插件支持 *任务:循环,变量,条件 *场景:设计自己的屏幕覆盖图 *应用程序创建:创建自己的...

    Tasker Pro 5.7.0.apk

    *触发器:应用程序,时间,日期,位置,硬/软状态,事件,快捷方式,小工具,计时器,插件 *操作:200+内置,插件支持 *任务:循环,变量,条件 *场景:设计自己的屏幕叠加 *应用创建:创建自己的独立应用程序分享或...

    AT命令资源手册

    2.9.4 设置PC 传真应用程序 2.10 串口控制命令.................................... 29 2.10.1 AT+IPR 固定DTE 波特率 2.10.2 AT&C 设置DCD 信号 2.10.3 AT&D 设置DTR 信号 2.10.4 AT&S 设置DSR 信号 2.10.5 ATO ...

Global site tag (gtag.js) - Google Analytics