Android例子源码可以静默批量卸载安卓非内置App的例子 源码下载

来源:脚本之家  责任编辑:小易  

网络上很多相关文档可用,当然建议是看书,代码自己手敲,有助于熟悉基本的android开发组件、步骤和代码结构,仅仅拿来源码贴到项目里面,印象并不深刻www.zgxue.com防采集请勿采集本网。

源码大小:1.18MB 源码语言:简体中文 源码类型:国产软件 源码授权:免费软件 更新时间:2017-02-04 16:42:34 源码类别:android 源码官网: 未知官方 网友评分:源码评分 应用平台:android Android例子源码可以静默批量卸载安卓非内置App的例子是一个静默卸载手机上已经安装的app的小例子,传统的安卓应用卸载会直接转跳到系统的应用详情界面点击卸载才能一个个的卸载,本例子卸载应用的时候不需要弹出应用管理界面直接静默卸载手机非内置应用,用户体验良好并且支持选择多个app一起卸载,但是运行的时候会申请Root权限,有Root权限才能卸载。(PS.另外尝试了一下卸载360,未果,说明并不是万能不过卸载普通的app绰绰有余了)默认编译版本4.2.2编码GBK源码有注释

目前的方法,似乎可以把你的apk捆绑到别的apk里一起安装进去,但是要想独立静默安装,除非通过root的方式执行一些特殊命令,只通过前台是没戏的。

下载地址如下:

建议你还是在Ubuntu下开发吧关于debug的问题,google其实已经帮我们想好了策略了,就是将android源码作为一个普通的java工程导入eclipse,然后就可以象调试普通的java工程一样的debug关于编译的

建议你还是在Ubuntu下开发吧关于debug的问题,google其实已经帮我们想好了策略了,就是将android源码作为一个普通的java工程导入eclipse,然后就可以象调试普通的java工程一样的debug关于编译的

四五互联移动下载

数组越界,到LoginActivity.java 86行找,或者发出来也行

群英网络电信下载

举个例子,你如果在windows上编程,用到它的系统api,这些api存在于一些dll中,这个dll就是你的开发所需的东东,类似android sdk,而这个dll之所以能跑起来,完全也是依赖windows系统的,windows系统源码

巨牛网络电信下载

创梦网络电信下载

酷云中国网通下载

亿恩科技电信下载

万达网络电信下载

徐州枫信网通下载

360集群电信下载

酷云中国电信下载

云彩网络双线下载

腾正科技电信下载

微子网络电信下载

(1)在网上搜寻该问题的解决方法,且查阅Android开发文档,没有发现可以实现该功能的显示API调用,网络上很多人请教同样的问题,但都没有能够实现解答;说是android为了用户的安全,已屏蔽该实现该方法的功能,第三方法应用是无法实现静默安装的。(2)然后自己试图去看看android实现普通安装程序的源码文件,能否找到解决的办法,打算绕过普通安装时的提示框,直接调用通过确认后调用的函数进行安装;在查看android应用程序的普通安装过程后,发现应用程序安装过程的方法调用过程为:首先进入到com/android/packageinstaller/PackageInstallerActivity.Java这个Activity中,在这个Activity中首先检查所欲安装的程序是否是正确的安装文件,以及当前系统中是否已安装了此应用程序,提示用户是否重复安装,另外还获取所欲安装的程序所讲用到的权限,然后将这些信息通过一个对话框提示给用户,当用户确定安装时,启动com.android.packageinstaller.InstallAppProgress.java这个Activity,在这个Activity中,调用android.content.pm.PackageManager.installPackage(Uri packageURI,IPackageInstallObserver observer,int flags,String installerPackageName)进行安装应用程序,在InstallAppProgress中得到的PackageManager是通过PackageManager pm=getPackageManager()得到的,得到的对象是一个android.app.ContextImpl.ApplicationPackageManager对象,而ApplicationPackageManager对象经过封装,ApplicationPackageManager(ContextImpl context,IPackageManager pm){mContext=context;mPM=pm;}其installPackage方法为Overridepublic void installPackage(Uri packageURI,IPackageInstallObserver observer,int flags,String installerPackageName){try {mPM.installPackage(packageURI,observer,flags,installerPackageName);} catch(RemoteException e){Should never happen!}}可见调用的installPackage方法为 IPackageManager.installPackage(packageURI,observer,flags,installerPackageName);在ContextImpl中,由IPackageManager pm=ActivityThread.getPackageManager()获得IPackageManager实例对象;在ActivityThread.getPackageManager()方法中,static IPackageManager sPackageManager;public static IPackageManager getPackageManager(){if(sPackageManager!null){return sPackageManager;}IBinder b=ServiceManager.getService("package");sPackageManager=IPackageManager.Stub.asInterface(b);return sPackageManager;}最终得到的installPackage确实是IPackageManager.installPackage方法;因为class PackageManagerService extends IPackageManager.Stub所以IPackageManager.installPackage调用的是:PackageManagerService.java(frameworks/base/services/java/com/android/server)文件中的Called when a downloaded package installation has been confirmed by the user*/public void installPackagefinal Uri packageURI,final IPackageInstallObserver observer,final int flags){installPackage(packageURI,observer,flags,null);}(这里不明白为何IPackageManager.installPackage方法调用的是PackageManagerService.java,只是在网上的一篇文章中它给出了上面的原因,因为class PackageManagerService extends IPackageManager.Stub,我不明白,但也找不到其他的函数,通过PackageManagerService.java的源码,可以看出它确实是进行应用程序安装的,所以应该可以确定最终调用的方法就是PackageManagerService.installPackage(final Uri packageURI,final IPackageInstallObserver observer,final int flags))于是考虑如何得到PackageManagerService.installPackage(),考虑通过反射的方法得到installPackage(),但其中难以得到的是其参数中的IPackageInstallObserver类型,IPackageInstallObserver是由aidl文件定义的,通过aidl文件的特性,将IPackageInstallObserver.aidl文件拷到本地程序中,可以得到类IPackageInstallObserver.calss,通过它反射出installPackage()方法,但在invoke该方法时,却无法得到IPackageInstallObserver的实例对象,IPackageInstallObserver的实例对象必须通过IPackageInstallObserver.Stub.asInterface(IBinder binder)方式得到,无法得到与其绑定的IBinder对象,因而无法执行反射出来的方法;另外PackageManagerService.installPackage()似乎是不能被第三方应用程序执行的,有权限的限制,这从下面的实例中似乎可以得到证实。(3)在程序中执行Runtime.getRuntime().exec("pm install-r"+new File(Environment.getExternalStorageDirectory(),download/Shuffle-1.6.3.apk"));进行安装,这个命令的执行在com.android.commands.pm.Pm中,直接调用IPackageManager.installPackage(Uri.fromFile(new File(apkFilePath)),obs,installFlags,installerPackageName)方法,在此方法中,IPackageManager mPm;mPm=IPackageManager.Stub.asInterface(ServiceManager.getService("package"));且class PackageManagerService extends IPackageManager.Stub所以IPackageManager.installPackage调用的是:PackageManagerService.java(frameworks/base/services/java/com/android/server)文件中的Called when a downloaded package installation has been confirmed by the user*/public void installPackagefinal Uri packageURI,final IPackageInstallObserver observer,final int flags){installPackage(packageURI,observer,flags,null);}在此方法执行中会出现 Not granting permission android.permission.DELETE_PACKAGES错误,这应该是该权限不能授给第三方应用,因而在程序中不能执行,与android中普通安装应用程序最终调用的方法是相同的,但是却对第三方应用是没有权限执行的。(4)另外解决思路:1>使用android:sharedUserId="android.uid.system"属性来使应用程序获得系统权限,看看是否能够执行行Runtime.getRuntime().exec("pm install-r.")方法。2>阅读android实现应用程序安装更底层的代码,看看能否可以调用的底层方法进行安装或者自己实现一个安装程序的代码,但这可能性不大,因为这涉及到android更底层的调用,肯定会有一定的权限限制。3>在网上看到一个文件管理程序,据说是可以实现批量寂寞安装应用程序,但说明运行时需要用户确定得到手机的root权限,所以没有太大意义。4>定制自己的android系统,可以解决内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • Android是不是可以实现静默安装模式
  • 你好,我想要那个android 应用案例开发大全第二版的源码,能发给我吗?
  • 如何实现android静默安装
  • android基础与教程书上例子的源码
  • Android 实现静默安装apk是不是只有通过编译系统源代码并刷机才行?
  • 请教如何在Window下编译android源码中的Browser例子
  • 请教如何在Window下编译android源码中的Browser例子
  • android应用开发详解18章例子,源码运行不起来
  • android源码 android系统源码 到底有什么区别
  • 怎样实现在android源代码下来调用隐藏的接口?静默安装?
  • 网站首页源码下载asp源码php源码.net源码jsp源码软件开发脚本下载js框架网站地图网页游戏黑客源码数据库类其它源码整站系统博客程序留言聊天企业网站新闻文章ajax相关搜索链接文件管理交友会员上传下载投票调查框架模板整站系统新闻文章留言聊天博客系统贺卡图片ajax相关文件管理问答系统社区论坛上传下载整站系统控件组件新闻文章主机域名计数统计小偷采集电子商务学校班级 社区论坛上传下载投票调查blog程序留言聊天整站系统社区论坛上传下载投票调查数据管理jsp其它c#源码易语言源码delphi源码vb源码java源码其它菜单导航tab标签焦 点 图在线客服css特效相册代码flash特效批处理其它jqueryextjsprototypemootoolsajax/javascript其它框架主页源码下载androidandroid 一个轻量youtube客户端源码android kotlin开发高德地图android 仿小米日历源码萌鑫直播源码app源码 v3android 仿京东金融首页头像效果app安卓android项目源码高仿知乎android studio版本demoandroid项目源码高仿知乎android studio版本demo下载android经典源码全集(简单易懂)android经典源码全集(简单易懂)下载看代码学android开发系列:android 个人记账程序源代码看代码学android开发系列:android 个人记账程序源代码下载github上最火的40个android开源项目源码打包github上最火的40个android开源项目源码打包下载android开发精典案例60个源码打包android开发精典案例60个源码打包下载看代码学android开发系列:android指南针程序源代码看代码学android开发系列:android指南针程序源代码下载看代码学android开发系列:android天气预报源代码看代码学android开发系列:android天气预报源代码下载mars老师android视频源码(33集全)mars老师android视频源码(33集全)下载android应用源码实现手机通讯录效果源码android应用源码实现手机通讯录效果源码下载找不到分享码?android 一个轻量youtube客户端源码android kotlin开发高德地图android 仿小米日历源码萌鑫直播源码app源码 v3android 仿京东金融首页头像效果coordinatortablayout 酷炫组件指尖书香诗词散文阅读和小说开源appandroid应用源码广东海洋大学图书馆安卓客户端项目源码android应用源码仿唱吧部分布局界面项目android应用源码可以自动定位和手动选择的天气预报分享码的获取方法迅雷winrar v5微信小程序androidasp源码生活购物php源码asp.net源码jsp源码软件开发移动开发网页游戏黑客源码数据库类网页编辑器其它源码android 一个轻量youtube客户端源码android kotlin开发高德地图android 仿小米日历源码萌鑫直播源码app源码 v3android 仿京东金融首页头像效果coordinatortablayout 酷炫组件指尖书香诗词散文阅读和小说开源appandroid应用源码广东海洋大学图书馆安卓客户端项目源码android应用源码仿唱吧部分布局界面项目android应用源码可以自动定位和手动选择的天气预报chrome
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved