Android的.apk软件安装到sd卡的方法

对于Android 2.2开始的软件可以装到到SD上的支持,对于adb命令而言也有了改进,对于Android 2.2固件中的pm命令开支持安装选项参数,这里新增了参数setInstallLocation,这里我们可以用adb通过shell命令执行linux的pm添加一些参数即可,比如adb shell pm setInstallLocation 0。其中最后一个参数0代表auto自动的,Android系统会自动选择,而1为手机内部的rom,2为外部sd卡存储,主要解释如下

 
adb shell pm setInstallLocation
option

option 的值可以为以下数字

       0 [auto] Let the system decide. 自动

       1 [internal only] ROM中

        2 [external] SD卡中

  这里android123推荐大家对于经常用的小软件可以安装在手机内部,比如来电管理、系统工具这样可以提供更高的可靠性节省电量,而游戏类应用可以考虑安装到SD卡上,对于文件大小超过4MB的APK可以考虑安装到SD卡上,通过电脑墙纸让apk安装到sd卡的命令为

 adb shell pm setInstallLocation 2 

  当然Android开发网提醒大家,还有新的获取安装的位置参数为getInstallLocation,我们使用adb shell pm getInstallLocation来获取软件的安装位置列表。

 

 

  在Android 2.2中新的特性可以支持类似APP2SD卡上,我们的APK文件可以安装在SD卡上供用户使用,Android123今天就说下目前项目的升级和一些配置。

   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比较合适,主要体现在:

Services 服务
Your running Service will be killed and will not be restarted when external storage is remounted. You can, however, register for the ACTION_EXTERNAL_APPLICATIONS_AVAILABLE broadcast Intent, which will notify your application when applications installed on external storage have become available to the system again. At which time, you can restart your Service. Android123提示大家一般实时后台监控类的应用都应该装到内部存储,比较可靠。

Alarm Services  闹铃提醒服务
Your alarms registered with AlarmManager will be cancelled. You must manually re-register any alarms when external storage is remounted.

Input Method Engines 输入法引擎
Your IME will be replaced by the default IME. When external storage is remounted, the user can open system settings to enable your IME again.

Live Wallpapers 活动壁纸
Your running Live Wallpaper will be replaced by the default Live Wallpaper. When external storage is remounted, the user can select your Live Wallpaper again.

Live Folders 活动文件夹
Your Live Folder will be removed from the home screen. When external storage is remounted, the user can add your Live Folder to the home screen again.

App Widgets Widget
Your App Widget will be removed from the home screen. When external storage is remounted, your App Widget will not be available for the user to select until the system resets the home application (usually not until a system reboot).

Account Managers 账户管理
Your accounts created with AccountManager will disappear until external storage is remounted.

Sync Adapters 同步适配器
Your AbstractThreadedSyncAdapter and all its sync functionality will not work until external storage is remounted.

Device Administrators 设备管理器
Your DeviceAdminReceiver and all its admin capabilities will be disabled, which can have unforeseeable consequences for the device functionality, which may persist after external storage is remounted.

  那么哪些应用适合安装在SD卡中呢? Android开发网建议一些占用资源比较大的游戏,比如大于3MB的单个文件,不需要长期驻留内存的应用,不具备提醒和实时监控的应用一般放到SD卡上比较合适,不过目前想让你的应用装到SD卡上,必须设置API Level至少为8以上,同时显示注明android:installLocation。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Oracle整理]CASE-END

说明&#xff1a;本内容是工作用到的知识点整理&#xff0c;来自工作中和网络。 代码于Oracle9上测试。 作用: 1可用来进行数据资料行转列的功能 2可用来对数据进行判断&#xff0c;类似decode&#xff0c;但CASE语句在处理范围条件的时候会显得非常灵活。如果只是需要匹配少量…

mysql声明declare_mysql8 参考手册--DECLARE ... CONDITION声明

DECLARE condition_name CONDITION FOR condition_valuecondition_value: {mysql_error_code| SQLSTATE [VALUE] sqlstate_value}该DECLARE ... CONDITION语句声明一个命名错误条件&#xff0c;将名称与需要特定处理的条件相关联。可以在后续DECLARE ... HANDLER语句中引用该名…

libevent源码深度剖析一

libevent源码深度剖析一 ——序幕 张亮 1 前言 Libevent是一个轻量级的开源高性能网络库&#xff0c;使用者众多&#xff0c;研究者更甚&#xff0c;相关文章也不少。写这一系列文章的用意在于&#xff0c;一则分享心得&#xff1b;二则对libevent代码和设计思想做系统的、更…

python什么是空类型_在Python中创建真正的空类型

创建您自己的自定义容器怎么样&#xff1f;在class Empty(object):def __init__(self, **kwargs):object.__setattr__(self, _obj, kwargs)def __getattribute__(self, name):obj object.__getattribute__(self, _obj)try:return obj[name]except KeyError:cls_name object._…

DMA及cache一致性的学习心得

这里提到的DMA设备是非PCI设备在framebuffer的prob函数中&#xff0c;用到了这样一个函数&#xff0c;下面分析下它的作用/* * s3c_fb_map_video_memory(): &#xff0a; 分配DRAM的缓存区给frame buffer。 &#xff0a; 这个缓存区是一个non-cached,non-buffered的。 &…

ASP.NET使用Memcached高缓存实例(初级教程)

http://www.itruanjian.com/a/itruanjian/datebase/nosql/2011/0927/5706.htmlMemcached是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数&#xff0c;从而提供动态、数据库驱动网站的M…

C# 线程手册 第三章 使用线程 Monitor.TryEnter()

Monitor 类的TryEnter() 方法在尝试获取一个对象上的显式锁方面和 Enter() 方法类似。然而&#xff0c;它不像Enter()方法那样会阻塞执行。如果线程成功进入关键区域那么TryEnter()方法会返回true. TryEnter()方法的三个重载方法中的两个以一个timeout类型值作为参数&#xff0…

socketpair理解

原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://liulixiaoyao.blog.51cto.com/1361095/533469 今天跟人谈到socketpair的问题&#xff0c;晚上回来写了个程序验证下自己的猜测&#xff0…

小数点化分数的过程_分数和小数的互化

《分数和小数的互化》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《分数和小数的互化(3页珍藏版)》请在人人文库网上搜索。1、_五__年级__数学____备课组教案教师备课时间课时课题分数和小数的互化课型新授课前准备&#xff1a;教材剖析(考点、易错点、关联考点)。1…

pycharm不同py文件共享参数_PyCharm安装笔记

1. 介绍1.1 介绍今天福哥带着大家学习如何安装非常好用的Python编辑器&#xff0c;也就是jetbrains全家桶的PyCharm编辑器。PyCharm是jetbrans开发的一款专门用来编写Python程序的编辑器&#xff0c;它的自动补全、代码联想、框架支持、插件支持以及高效的反应速度成为了编写Py…

WPF - 自定义标记扩展

在使用WPF进行编程的过程中&#xff0c;我们常常需要使用XAML的标记扩展&#xff1a;{Binding}&#xff0c;{x:Null}等等。那么为什么WPF提供了XAML标记扩展这一功能&#xff0c;我们又如何创建自定义的标记扩展呢。这就是本文将要讨论的内容。 一&#xff0e;从标记扩展的分析…

mysql c api 函数 linux下 mysql_query_Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据...

标签&#xff1a;Title:Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据 --2013-10-11 11:57#include #include #include #include "mysql.h"int main(int argc, char *argv[]){MYSQL my_connection;int res;mysql_init(&my_connection);char UNAM…

使用LVM

一些比较常用的命令&#xff1a; vgdisplay 展示创建的volume group lvdisplay 展示创建的logic volume 在我们的项目中&#xff0c;vg把磁盘阵列的所有空间分给它&#xff0c;pv为每个盘&#xff0c;lv分配为每个虚拟机。 这样需要修改的地方&#xff1a;转载于:https://www.c…

mysql客户端保存数据乱码_mysql客户端数据乱码问题

往mysql插入中文数据时出现乱码&#xff0c;如下&#xff1a;mysql> select * from test;-----------------| id | name |-----------------| 1 | 鐜嬪煿鍧?|| 2 | 鐜嬫檽宄?|| 3 | 寮犲皬闆?|| 4 | 鐜嬮洩宄?|| 5 | 闄嗕簯 || 6 | 妗冭姳濂…

基于半同步/半反应堆线程池实现的HTTP解析服务端程序

简介&#xff1a; 半同步/半反应堆线程池是通过一个线程往工作队列添加任务T&#xff0c;然后工作线程竞争工作队列获得任务T。HTTP请求解析服务端程序&#xff1a;逐行解析客户端发送来的HTTP请求然后作出HTTP回答。采用线程池就是&#xff1a;服务端创建一个线程池&#xff0…

GridView中实现CheckBox的全选

用服务器端的方法&#xff1a; 在页面上放一个gridview控件&#xff0c;配置好数据源&#xff0c;编辑列&#xff0c;添加一个模版列&#xff0c;再编辑模版&#xff0c;放入一个checkbox控件。代码如下&#xff1a; <asp:GridView ID"GridView1" runat"serv…

mysql replace first_Java replaceFirst()方法

Java replaceFirst()方法replaceFirst() 方法使用给定的参数 replacement 替换字符串第一个匹配给定的正则表达式的子字符串。语法publicStringreplaceFirst(Stringregex,Stringreplacement)参数 regex -- 匹配此字符串的正则表达式。replacement -- 用来替换第一个匹配项的字符…

Windows与linux双系统安装

[源] [http://xiaomaimai.blog.51cto.com/1182965/294256] Windows与linux双系统 Linux的安装方式有硬盘安装、网络安装、光驱安装。 双系统的安装最后先安装windows&#xff0c;再安装linux&#xff0c;因为windows每次安装时都会重新修改系统引导文件&#xff0c;如果安装…

第一步:Axure 使用svn多人协作产品开发(提交文件)

注册登陆http://www.svnxiezuo.com站点 注册登陆http://www.svnxiezuo.com站点 从注册http://www.svnxiezuo.com站点获取svn项目地址 编辑axure文件 开始创建axure共享文件 创建axure共享文件 axure提交文件到svn版本库当中 登陆http://www.svnxiezuo.com站点svn版本库 axure创…

python文件函数_python文件和文件夹复制函数

本文实例为大家分享了python文件和文件夹复制函数&#xff0c;供大家参考&#xff0c;具体内容如下文件复制函数代码和注释如下&#xff1a;# 文件复制函数def copy_file(file1,file2):将文件一复制到文件二:param file1::param file2::return:# 首先打开源文件file1和目标文件…