Android下如何把App安装到SD上

 环境:imx51 fsl 开发板 系统:android2.2

方法一、

1,连接调试串口

2,在shell 下执行:pm setInstallLocation 2

     还可以执行:pm getInstallLocation 获得是什么模式

   0 [auto]: Let system decide the best location
  1 [internal]: Install on internal device storage
  2 [external]: Install on external media

 

3,把你所要安装的包:放到/sdcard中,用ES安装,

 安装后: df   or busybox df -h

Filesystem                Size      Used Available Use% Mounted on
tmpfs                   210.5M     12.0K    210.5M   0% /dev
tmpfs                   210.5M         0    210.5M   0% /mnt/asec
tmpfs                     1.0M     28.0K    996.0K   3% /mnt/shm
/dev/block/mmcblk0p2    121.5M     97.6M     23.9M  80% /system
/dev/block/mmcblk0p5    239.6M     37.0M    190.2M  16% /data
/dev/block/mmcblk0p6    121.6M      5.5M    109.8M   5% /cache
/dev/block/vold/179:1
                          3.2G     22.6M      3.1G   1% /mnt/sdcard
/dev/block/vold/179:1
                          3.2G     22.6M      3.1G   1% /mnt/secure/asec
/dev/block/dm-0           2.0M     28.0K      2.0M   1% /mnt/asec/com.kevin.slidingdrawer-1
/dev/block/dm-1           2.0M     32.0K      2.0M   2% /mnt/asec/android.serialport.sample-1
/dev/block/dm-2           8.1M      6.9M      1.2M  85% /mnt/asec/com.google.android.apps.maps-1
/dev/block/dm-3           2.0M    876.0K      1.2M  42% /mnt/asec/com.aurorasoftworks.quadrant.ui.advanced-1

其中/dev/block/dm-0   到3 就是我们安装在SD上的apk应用程序。可以看出(我在SD上安装了4个应用)

4,这只是将应用程序安装在SD上,但是它们的缓冲数据或临时数据,都还是在 /data目录下,只是安装的文件不占flash空间,其运行时所需要的动态数据或生成的临时数据还是在flash上的。

5,不足:这就带来一个问题,启动会变慢,运行SD上的程序会比在flash上的要慢。这就要求你的SD卡要足够快!

6,好处:就是系统坏了,这些在SD的应用不需要再安装。

方法二、

主要是针对开发人员

 1,让你的程序支持SD卡上安装必须具备设置API Level至少为8,即androidmanifest.xml的中android:minSdkVersion至少为8这样你的APK最终运行时兼容的固件只有2.2了,同时在androidmanifest.xml文件的根节点中必须加入android:installLocation这个属性,类似代码如下:

  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
    ... >

 2,android:installLocation的值主要有preferExternal、auto和internalOnly这三个选项,通常我们设置为preferExternal可以优先推荐应用安装到SD卡上,当然最终用户可以选择为内部的ROM存储上,如果外部存储已满,Android内部也会安装到内部存储上,auto将会根据存储空间自适应,当然还有一些应用可能会有特殊的目的,他们一般必须安装在内部存储才能可靠运行,设置为internalOnly比较合适。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值