android 系统应用权限系统怎样将APP应用安装到SD卡中

后使用快捷导航没有帐号?
只需一步,快速开始
查看: 6961|回复: 11
在线时间137 小时经验值680 最后登录注册时间帖子阅读权限60UID
大学本科, 积分 680, 距离下一级还需 20 积分
TA的每日心情开心 22:04签到天数: 1 天[LV.1]初来乍到
G币6 最后登录注册时间
马上注册,结交更多机友,下载更多应用,让你轻松玩转手机。
已有帐号?   下载游戏和软件,请【】进入机锋市场!
本帖最后由 manbuzhe1987 于
08:57 编辑
如何把手机软件安装到system/app下
o& &system下的app称作只读ROM,用来装系统自带apk软件。刷完机后,这些软件就被安装好了。
o& &data下的app是可读写的RAM。用户的apk应用程序就安装在这里。重新刷机或wipe用户数据后,这些程序会被清除掉。
o& &SD卡也可以用来安装apk应用程序。用PC助手手机精灵安装apk应用时,可以选择是安装到内存还是安装到SD卡。通常认为,apk应用安装到SD卡上,运行时会比较慢,同时比较费电,因为要从频繁从外部设备来读取数据。为了不浪费ROM空间,可以把data/app的东西移动到了system/app里! 本文讲述如何将用户的apk应用程序安装到只读ROM中去,即安装到system/app目录下,而不是在data/app目录下。这就是“定制软件到ROM”。这样可以有效地增加系统空间,提高运行速度(与安装到SD卡上相比)。一、前提有root,有re管理器。二、具体操作方法和步骤。1、首先软件要先安装在手机内存中,这就是在data/app中,先把你要移动的软件改名,为了好认,不改也可以其实,点击一下这个软件,会提示“安装”,“查看”,取消。这个点查看,看看里面有没有lib这个文件夹,没有的话就直接把软件剪切到system/app中就行了。2、要是有lib文件夹的话,打开lib文件夹里面会有armeabi这个文件夹,再打开armeabi这个文件夹,里面会有****.so文件,把这些so文件提取出来,(就是长按so文件,会出现解压或者提取)然后把提取出来的文件复制到system这个目录下然后更改权限211,再剪切到system/lib文件夹下,(这个文件夹里都是so文件)就ok了,再把你要移动的软件剪切到system/app中就可以了……我估计你总是关闭就是没有把这些so文件放到system/lib中!3、移动完了之后 data/dalvik-cache文件夹里的你移动的软件的dex文件在你重启之后要删除了,重启之后会生成system@app@****文件,原来的 data@app@***文件就没有用了删除就可以(补充一下,软件安装完了之后会生成两个文件,一个是apk文件储存在data/apk中或者内存卡上,另一个是dex文件,在data/ dalvik-cache中 )。
(另外一种移动方法:
1) 将该apk先卸载,然后将apk文件拷贝到system/app下,修改权限,有必要的话,重启一下。这样做的好处是,该软件的缓存会在卸载是自动删除。
2) 为防止有些应用卸载后数据丢失,可以不卸载,方法是:将apk拷贝到system/app下,然后删除data/app的apk,最后手动把/data/dalvik-cache/下该程序的缓存清除。
3) 假如要移动的应用太多,可以进入recovery,清除一下dalvik-cache,让启动的时候自动再生成cache。
以下再以另一个例子来说明如何内置带有库(LIB)的软件。我以来电通为例子在电脑上用RAR打开“来电通.APK”。发现它是带有LIB目录的。进入它,并把那两个SO文件拉出来,是的就是拉。然后放到手机的TF卡上。我一般喜欢放到个文件夹中。这里记得把来电通的中文名改成一个你喜欢的英文名。比如说我的改成LDT1024.apk(如果文件名是英文,可以不不改掉。)在RE中按住MENU 多选,选两个SO文件。复制它们到SYSTEM/LIB中。同理,再回去把LDT1024.apk 拷到SYSTEM/APP中。重启。接着你进去会发现,程序那里多出来了两个来电通的东东。一个是主程另一个来电通拔号。三、安装到SYSTEM/APP下的意义何在?
1。在用RECOVERY 备份出来再做成安装包时就会直接带有,省去一些麻烦事。
2。该软件会被当成系统文件,很多杀进程的内存优化软件。比如360之类的就不会杀它了。并且也在安卓优化大师里也不会显示为开机启动软件了。
3。通常情况下。SYSTEM分区总是比较大的,而很多ROM直接只用了不到70%。其它的基本上是浪费了。可我们安装软件时却装不到那里,而是去到DATA分区去了。浪费可耻,不是吗?
& & 对于你要装到系统目录下的文件的注意事项
& & 你要确认这个版本的软件已经相当好了。否则以后就不好升级。对于经常升级的软件就没必要放进去了。
在线时间137 小时经验值680 最后登录注册时间帖子阅读权限60UID
大学本科, 积分 680, 距离下一级还需 20 积分
TA的每日心情开心 22:04签到天数: 1 天[LV.1]初来乍到
G币6 最后登录注册时间
方法我都试过& &只要细心是不会出问题的& &just do it
在线时间0 小时经验值27 最后登录注册时间帖子阅读权限20UID
小学生, 积分 27, 距离下一级还需 23 积分
该用户从未签到
G币8 最后登录注册时间
学习,小白谢过楼主!
在线时间42 小时经验值82 最后登录注册时间帖子阅读权限30UID2933049
初中生, 积分 82, 距离下一级还需 18 积分
该用户从未签到
G币0 最后登录注册时间
很好很强大...
在线时间0 小时经验值326 最后登录注册时间帖子阅读权限50UID
大学专科, 积分 326, 距离下一级还需 74 积分
该用户从未签到
G币184 最后登录注册时间
感谢楼主分享
在线时间0 小时经验值151 最后登录注册时间帖子阅读权限40UID
高中生, 积分 151, 距离下一级还需 49 积分
该用户从未签到
G币185 最后登录注册时间
非常感谢!!!!!!1
在线时间0 小时经验值26 最后登录注册时间帖子阅读权限20UID
小学生, 积分 26, 距离下一级还需 24 积分
该用户从未签到
G币23 最后登录注册时间
学习,这个正需要的!
在线时间0 小时经验值42 最后登录注册时间帖子阅读权限20UID
小学生, 积分 42, 距离下一级还需 8 积分
该用户从未签到
G币28 最后登录注册时间
支持一下!
在线时间1 小时经验值32 最后登录注册时间帖子阅读权限20UID8634345
小学生, 积分 32, 距离下一级还需 18 积分
该用户从未签到
G币5 最后登录注册时间
都是强大人物,由心感谢
在线时间3 小时经验值1325 最后登录注册时间帖子阅读权限80UID
研究生, 积分 1325, 距离下一级还需 375 积分
TA的每日心情无聊 16:40签到天数: 39 天[LV.5]常住居民I
G币1426 最后登录注册时间
没人回帖。。
Powered byAndroid应用程序安装位置(App Install Location) - 推酷
Android应用程序安装位置(App Install Location)
从API Level 8(Android 2.2)开始,你可以将你的应用程序安装到外部存储上(例如,设备的SD卡)。你可以在应用程序的manifest文件中声明android:installLocation属性来使用这个可选的功能。如果你没有声明这个属性,你的应用程序只能被安装在内部存储中,并且不能移动到外部存储上。
允许系统将你的应用程序安装到外部存储上,你需要修改你的manifest文件。在其中的&manifest&标签下,添加android:installLocation属性,并将值设置为“preferExternal”或者“auto”。例如:
&manifest xmlns:android=&/apk/res/android&
android:installLocation=&preferExternal&
如果你声明了“preferExternal”,这就表示请求系统将你的应用程序安装到外部存储中,但是系统不保证一定能将你的应用程序安装到外部存储上。如果外部存储空间已经满了,系统就会将应用程序安装到内部存储上。用户同样可以将你的应用程序在内部和外部存储之间移动。
如果你声明了“auto”,这表明你的应用程序可以安装到外部存储上,但是你没有指定首选的安装位置。系统会根据几个因素来决定将你的应用程序安装到什么位置。用户同样可以将你的应用程序在内部和外部存储之间移动。
当你的应用程序安装在外部存储上:
* 只要外部存储一直挂载在设备上,将应用程序安装在外部存储上对应用程序的性能没有任何影响。
* .apk文件会保存在外部存储上,但是所有用户的私有数据、数据库、优化过的.dex文件,还有附加的本地代码都会保存在内部的设备存储器上。
* 安装了你的应用程序的特定存储器会使用一个随机生成的key进行加密,这个key可以被原来安装这个应用程序的设备解密出来。因此,安装在SD卡上的应用程序只能在一台设备上运行。
* 用户可以用过系统设置将你的应用程序移动到内部存储上。
注意:当用户启用USD设备存储模式与计算机共享文件,或者通过系统设置卸载了SD卡,外部存储将会从设备上被卸载下来,并且所有运行在外部存储上的应用程序都会马上结束被杀死。
1、向后兼容性
只有运行API Level 8(Android 2.2)或者更高版本的设备才允许将你的应用程序安装到外部存储上。已经存在的应用程序,如果是用低于API Level 8版本所编译的,那么这些应用程序只能一直安装在内部存储上,不能移动到外部存储上(即使程序所安装的设备运行的是Android 2.2或以上的版本)。然而,如果你的应用程序必须支持低于API Level 8的版本,你仍然可以为运行API Level 8或者更高版本的设备提供这个功能,并且兼容低于API Level 8版本的设备。
为了允许应用程序安装到外部存储上,并且仍然兼容低于API Level 8的版本,你需要:
1.1 在manifest文件中的标签中添加android:installLocation属性,并设置值为“auto”或者“preferExternal”。
1.2 继续保持你的android:minSdkVersion属性(低于版本8的值),并且确保你的应用程序的代码只使用了兼容这个版本的API。
1.3 为了能够编译你的应用程序,将你的android:targetSdkVersion修改为8或者更高的版本。这是必须的,因为旧的Android库不能识别android:installLocation这个属性,这会导致无法编译你的应用程序。
当你的应用程序安装到低于API Level 8版本的设备上,android:installLocation这个属性就会被忽略,应用程序会被安装到内部存储上。
警告:尽管像这样的XML标签在旧版本平台上会被忽略,但当你的minSdkVersion低于“8”时,你要小心不要在代码中使用API Level 8版本才提供的API,除非你进行必要的工作以保证你的代码能够向后兼容(进行版本判断后再执行高版本API等)。
2、不应该安装在外部存储上的应用程序
当用户启用USB存储模式与他们的计算机共享文件(或者直接卸载和移除外部存储器),安装在外部存储上的应用程序会立即被杀死。系统会无法识别这些应用程序,直到USB存储模式关闭并且外部存储重新挂载到设备上。除了杀死应用程序和让用户无法使用这些应用程序之外,这也可能会造成一些类型的应用程序产生更严重的后果。为了保持你的应用程序始终按照预期运行,如果你的应用程序使用了下面列出的功能,你就不应该将应用程序安装在外部存储上,以避免外部存储被卸载的情况:
2.1 Services:你运行的Service会被杀死,并且在外部存储重新挂载后不会重新运行。当然,你也可以注册ACTION_EXTERNAL_APPLICATIONS_AVAILABLE类型的Intent广播,这将会在系统可以重新使用安装在外部存储上的应用程序时通知你的应用程序。接收到广播后,你可以重启的你的Service。
2.2 Alarm Services(闹钟/系统定时服务):你通过AlarmManager注册的闹钟会被取消。你必须在外部存储重新挂载之后手动再注册这些闹钟。
2.3 Input Method Engines(IME,输入法):你的输入法将会被默认的输入法代替。当外部存储重新挂载后,用户可以打开系统设置重新启用你的输入法。
2.4 Live Wallpapers(动态壁纸):你运行的动态壁纸将会被默认的动态壁纸替换。当外部存储重新挂载后,用户可以重新选择你的动态壁纸。
2.5 App Widget(窗口小部件):你的窗口小部件将会从home界面上被移除。当外部存储重新挂载后,你的窗口小部件对于用户同样不可使用,直到系统重置了home上面的应用程序(通常要等到系统重启)。
2.6 Account Manager(账号管理):使用AccountManager创建的账号会消失,知道外部存储重新挂载。
2.7 Sync Adapter(同步适配器):你的AbstractThreadedSyncAdapter和它的同步功能将会停止工作,直到外部存储重新挂载上。
2.8 Device Administrators(设备管理员):你的恶DeviceAdminReceive和它所有的管理权限都会被禁用,这对设备功能可能造成不可预见的后果,并且在外部存储重新挂载后可能还会持续下去。
2.9 监听“设备启动完成”的广播接收器:系统在外部存储挂载到设备上之前就会发布ACTION_BOOT_COMPLETED广播。如果你的应用程序安装在外部存储上,它将无法接收到这个广播。
如果你的应用程序使用上面列出的一些功能,你就不应该允许你的应用程序安装到外部存储上。默认情况下,系统不会允许你的应用程序安装到外部存储上,因此你不用担心你已经发布完成的应用程序。然而,如果你需要确保你的应用程序永远不会被安装到外部存储上,你可以清楚的声明android:installLocation属性,并赋值为“internalOnly”。尽管这不会改变默认的设置,但它可以明确你的应用程序只能安装在内部存储上,并提醒你自己或其他开发者这一个决定。
3、应该安装在外部存储上的应用程序
简单来说,任何没有使用前面所列举功能的应用程序安装到外部存储上都是安全的。大型游戏通常都要允许安装到外部存储上,因为游戏通常不会提供待机时运行的服务。当外部存储不可用的时候,游戏进程会被杀死。当外部存储重新可用并且用户重启了游戏,在视觉界面上应该没有什么影响(假设游戏通过标准的Activity生命周期正确保存了它的状态)。
如果你的应用程序需要几个兆字节的APK文件,你需要仔细考虑是否允许应用程序安装到外部存储上来为用户节省内部存储空间。
原文地址:
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致扫描下载MIUI论坛APP
经验29768 米
在线时间1390 小时
版本6.10.31
【我只是打酱油的】
机型小米Note
签到次数125
MIUI版本6.10.31
本帖最后由 曾经锝回忆 于
19:31 编辑
MIUI酱油组
好些人对于以下几个问题有很多疑问:
一、为什么软件不能移动存储卡里?
二、软件装在存储卡里就不会影响系统本身,运行可以更流畅(windows思想)?
三、不是说有4G 的rom么,为什么我的只有2.83G?
四、哇!!!才这么点,我装个导航软件就塞满盘了,还让不让我装其它软件了???
其实,如果你是一个对Linux系统有点认识的人,是不会提出这样子的疑问的,然而却很多人并不是这样的人,所以有感而发在此写一篇小文,希望对大家能有那么一点点帮助。
首先,安卓是一个基于Linux作二次开发的一个操作系统,骨子里它就是一个Linux,所以它的系统文件及文件夹的存放规律都与Linux是一样的,当然,这是一个很模糊的概念。我就不多作介绍了,奔向主题吧。
安卓,不管是原生还是CM7还是MIUI,其实系统存储方式都是一样的,可以不太专业的将它们分为三部分,
***一部分叫RAM,就是我们所说的运行内存,这部分存储器用于系统底层的输入输出,在系统运行过程中频繁读写,断电后这部分存储将会消失,是系统乃至所有计算机设备的重要组成部分,但这部分不是这个帖子讨论的内容。
***另一部分就是鼎鼎大名的ROM,这部分内容存储着安卓系统本身,包括Linux内核,Android系统文件,系统配置文件以及系统运行所必须预留的缓存空间(Cache);然后就是我们最最关心的,我们所安装的Android应用程序,所以小米所说的4GB ROM里为什么我们只能看到2.83G,剩下的一部分,就是被安装应用以外的文件占用了,有人会问为什么占这么多,小米需要支持双系统,所以被占用走的除了两个系统要用到的空间以外,还占用了一部分作为支撑双系统运行的必须配置文件。因此,大家所看到的2.83G,是正常得不得了的事情。
ROM是整合在机器上的。
那么这2.83G够不够用,我们还需不需要把程序移动到存储卡上?
答案是,绝对够用,并且不需要甚至不应该把软件安装到存储卡上。
为什么?Android系统本身(不管你是原生,CM,还是MIUI),它的存储文件系统是ext2或ext4,Android在没有任何外部插件或软件支撑的情况下只能读取这两种文件系统里的文件(而我们TF卡上的文件系统是FAT32),所以软件安装在ext2或ext4分区里是天经地义的。如果我们把软件装在SD卡上,软件的运行过程就变成了:系统先调用app2sd插件,把SD卡上的程序读取到ext分区里,再运行,这种情况下,程序的启动相比起安装在ext分区里孰快孰慢,基本上就没有讨论的价值了。
所以,常说的Android的软件装在存储卡上能减低对系统运行速度的影响(这种经典的windows系统使用习惯),这本身就是错误的,你让系统运行软件时多做了几步,还快什么?
——“可是这2.83G不够用啊,我装一个导航就几个G了,别说装别的软件了,就这个软件都装不下了!!!!”
这种说法源于你本身就没看清楚软件的安装教程,这类软件的安装都分为两步,首先安装程序,然后放置数据包,程序(一般不会超过20MB)是装在那个2.83G里,而数据是放在你的SD卡里,所以你这个程序占用的ROM容量就只有不到20M,只是在SD卡里放了几个G。很多大型游戏都是采取这种方式,例如有些游戏安装了几十M的软件进去之后,第一次启动它会下载数据,这些数据就是存放在SD卡里的。
***最后一部分,就是SD卡存储了,很多(非常非常多)人觉得SD卡存储是ROM的扩展,这怎么说呢,还是windows的老习惯,还有就是用其它电子设备(包括塞班手机,MP4,DC,DV等)的定性思维,其实在安卓里,SD卡跟ROM是系统职责完全不同的两个存储空间,他们对系统的作用也是不同的,其它的电子设备SD卡扩展可有可无,但是安卓系统里,没有SD卡的安卓手可以说是一台硬件不完整的手机。
SD卡之于安卓,是一个软件缓存(非系统缓存,也非软件配置文件)存放器,包括你看网络视频的缓存,浏览器的缓存,离线阅读的缓存,和所谓的软件数据包,总之你用过的软件会产生的数据都会存放在这里。所以SD卡非常重要,不是一个你觉得我的手机有4Grom够了,就可以不用增配的一个配件。当然,因为SD卡是FAT32格式,所以我们的电脑可以读取和存放的信息的地方就只有SD卡,你想直接读写ROM里的内容是没门的。
有人会说,我没有SD卡我的手也可以运行啊,怎么就说没SD卡我的手机就不完整了,那这位同学可以留意一下当你用电脑连接手机打开SD卡时,系统是不是会提示,“微信的XXX和XXX功能暂时无法使用!”,这你就应该懂SD卡的真正作用了。
那么我用Nexus S的,机器里就16G,不能放内存卡,那我的手机就永远不完整了?这也是不对的,像Nexus S这种不能外接存储卡的机器里,人家的里面的存储是有分区的,是将原来的16G分了两个区,一个是ROM区,一个是数据存储区(就是我们的SD卡),所以就别纠结了。
也有出现双数据存储区的手机,象Galaxy S2那种,系统本身分了数据区,还能外接一个SD卡,所以在这些机子上是有SD卡1和SD卡2的选项的。
所以,总结起来
一、ROM和存储卡是两个不同的存储器,系统本身以及安装的软件放在ROM里是无可厚非的,并且一个软件不会占用你多少ROM的空间,关键是数据包是放在存储卡上。
二、把软件安装在SD卡里是一种逆系统而行的行为,这只会让你的程序运行得更慢。
三、不要用windows的思想去使用Android,windows是分区是并行的,它们都用一种文件系统,而Android的ROM和SD卡基本上是两个概念。软件是应该安装在ROM里的。
四、ROM和SD卡的关系,绝对不是windows里C盘和其它盘的关系。它们分工明确,不应该混为一谈,更不应该让SD卡做ROM应该做的事情。
五、软件装在SD卡上是不完整的,如果一个软件有桌面插件,装在SD卡上会用不了。
六、而为什么这么多厂商都相继推出app2sd功能,让软件可以装在SD卡上,那是因为早期的Android系统机器的rom都很可怜,128M,256M的都有,这么点确实不够用,所以是逼于无奈只好推出app2sd,让用户可以安装更多的程序到系统里。当ICS出现时,各机器的配置都上去了。ROM也大了,何必还纠结要把软件放在SD卡上呢。
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
我们不生产答案,我们只做MIUI的搬运工
我们不生产答案,我们只做MIUI的搬运工
经验3738 米
在线时间109 小时
版本5.6.10
积分 4254, 距离下一级还需 746 积分
积分 4254, 距离下一级还需 746 积分
机型小米手机2/2S
签到次数40
MIUI版本5.6.10
说了等于没说
经验158 米
在线时间2 小时
版本V7.3.6.0.LHOCNDD
积分 139, 距离下一级还需 61 积分
积分 139, 距离下一级还需 61 积分
机型红米Note3 全网通
签到次数11
MIUI版本V7.3.6.0.LHOCNDD
解决办法那?
MIUI 300周
MIUI 300周更新纪念勋章
为奥运加油勋章
为奥运加油勋章
MIUI 8纪念勋章
MIUI 8纪念勋章
小米六周年
小米六周年米粉节
内测督查勋章
内测督查员专属勋章
MIUI 3000万
MIUI 3000万发烧友纪念勋章
MIUI 2000万
MIUI 2000万发烧友纪念勋章
1000万用户纪念勋章
MIUI1000万用户纪念勋章
MIUI 7纪念勋章
小米商城购买纪念勋章
论坛APP购买小米商品获得
解答组专属勋章
解答组专属勋章
参加流量购买活动
MIUI五周年
MIUI五周年纪念勋章
MIUI三周年
MIUI三周年纪念勋章
已关注极客秀微信
已关注微信
小米桌面内测勋章
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
发烧友俱乐部
发烧友俱乐部
MIUI六周年
MIUI六周年纪念勋章
Copyright (C) 2016 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号手机系统是Android 2.3,内存很小,但存储卡相对就很大。怎样把APP直接安装在存储卡上呢?    其实并非所有的APP都可以安装在SD卡上,这要看APP开发者是如何设定的。将APP安装在SD卡上是Android2.2新增的功能。APP转移到SD卡,可以很大程度地避免空间不足的状况,因为用户所安装的应用程序都是安装在/data分区下的,随着APP的数量逐渐增加,data分区的空间势必逐渐减小。转移到SD卡的步骤:在Home页,按下menu键,然后选择&设置&&&应用程序&&&管理应用程序&,此处画面其中第一栏的&已下载&里包含着所有用户所安装的APP。点击&已下载&里的应用程序,如果该应用程序允许被移动到SD卡,会有一个白色可点击的&移至SD卡&按钮,点击这个按钮,系统就会将该应用程序移动到SD卡了。返回到&管理应用程序&界面,点击最右侧的一栏&SD卡中&,可以看到所有被移动到SD卡的应用程序。
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670&}

我要回帖

更多关于 android 系统应用权限 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信