Android如何在PMS中获取应用安装进度

以接口的形式暴露出应用安装的进度和应用图标提供给launcher调用,实现在桌面显示图标和安装进度.

2个回答

通过获取pms安装的流程,每个安装阶段进行标记,通过接口或者广播的形式提供出来.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
初探Android的PMS服务
本文转载于:http://www.iloveandroid.net/2016/06/20/Android_PackageManagerService-1/ Android系统中PackageManagerService简称PMS,主要负责各种APK的安装,卸载,优化和查询。 Android系统中,pm工具是PMS的一个展现命令。通过了解pm的使用,可以了解PMS究竟提供了哪些具体的
Android之应用程序的安装过程源码分析
Package管理服务PackageManagerService在安装一个应用程序的过程中,会对这个应用程序的配置文件AndroidManifest.xml进行解析,以便可以获得它的安装信息。 Android系统中每一个应用程序都有一个Linux用户ID,一个应用程序除了拥有一个Linux用户ID之外,还可以拥有若干个Linux用户组ID,以便可以在系统中获得更多的资源访问权限,如读取联系人信息
pms包管理服务分析-外部安装流程(adb/packageInstaller)
系统开机过程中扫描并安装apk的过程是针对已有的apk文件。针对外部apk的安装,pms提供了另外的接口。我们一般也就通过两种方式去安装外部apk,一种是通过adb的install命令安装外部应用。另外一种是通过系统应用PackageInstaller,通过界面引导的方式安装外部应用。下面分别来分析这两种安装方式的过程和相同的地方。 通过adb install命令安装外部应用
Android包管理机制(三)PMS处理APK的安装
相关文章 Android包管理机制系列 前言 在上一篇文章Android包管理机制(二)PackageInstaller安装APK中,我们学习了PackageInstaller是如何安装APK的,最后会将APK的信息交由PMS处理。那么PMS是如何处理的呢?这篇文章会给你答案。 1.PackageHandler处理安装消息 APK的信息交由PMS后,PMS通过向PackageHa...
Android6.0 Framework分析——应用程序APP的安装过程
应用程序的安装是通过包管理服务PackageManagerService完成的,常见的安装方式有以下几种: ① 内置APP随着系统启动PMS而安装。 ② 使用adb install命令安装。 ③ 通过系统内置的PackageInstaller应用安装。 ④ 在一些手机厂商内置的应用商店下载,然后静默安装。 分析源码之后,会发现,其实只有两种方式, 一是系统内置应用通过Packa
Android程序包管理机制解析和PMS启动流程分析
程序包管理包含三个部分内容:提供一个能够根据intent匹配到具体的Activity、Provider、Service。即当应用程序调用startActivity(intent)时,能够把参数中指定的intent转换成一个具体的包含了程序包名称及具体Componment名称的信息,以便Java类加载器加载具体的Componment。进行权限检查。即当应用程序调用某个需要一定权限的函数时,系统判断调...
pms包管理服务分析-初步理解
初步理解 Android系统启动过程中,会启动一个包管理服务PackageManagerService(pms),这个服务主要负责扫描系统中指定目录,找出里面以apk结尾的文件,通过对这些文件进行解析,得到应用程序的所有信息并完成应用程序的安装过程。包管理服务中解析出来的apk信息供其它服务使用,如ams。 pms主要解析apk的AndroidManifest文件里面的所有信息,包括应用程
Android签名机制及PMS中校验签名
一、签名机制众所周知,在Android系统中,应用想要安装到设备中,必须要有签名才行,及时是debug的时候,开发工具也会对要运行的应用自动签名,那么我们先来了解一下这个签名究竟是什么。 首先Android系统为了防止以安装的应用被篡改,推出来的签名自检机制,来维护应用的安全性,可以说,签名就是一个保护个人应用不受侵害的一种机制。而且这里面说道了自检,也就是说,在Android系统中,应用的
pms包管理服务分析-权限管理和鉴权过程
Android系统权限是建立在框架层上的一套权限解析分配和鉴权流程,其主要数据结构和校验流程主要在pms(包管理服务)中实现。 简单理解系统权限机制主要分为权限解析、权限分配、鉴权这三个主要内容。 Sdk版本大于等于23后,新增了动态权限管理,让Android系统权限管理更加灵活和自主。 下面来分析下Android 5.1上面的权限管理和鉴权过程。 权限的数据结构 涉及到
android 下载应用 通知栏显示进度 下完之后点击安装 (很实用)
先看效果图: 这是本人的习惯,先上图显示效果,看是否是想要的,再看代码。有图有真相 代码: Main: package com.gem.hsx.appupdate; import android.app.Activity; import android.content.Intent; import android.os.Bundl
Android PackageManager源码浅析以及静默安装实现方式
实现静默安装 ** 通过了解了上面pm的简单工作原理,我们就可以想到静默安装的途径 通过伪造自己的Pm实现开放的api,并且采用自己的IPackageInstallObserver,说道这里你估计会不明白此类用来干嘛的。此观察者是用来检测apk是否安装的的回调,那么卸载同样有自己的观者这,此通过aidl和pms进行通讯,我们可以从源码copy一份到自己的项目下面
PMS 分析
深入分析PowerManagerService ·  深入分析BatteryService和BatteryStatsService 本章所涉及的源代码文件名及位置: ·  PowerManagerService.Java frameworks/base/services/java/com/android/server/PowerManagerService.java ·  com_and
Android下载apk并安装,实时刷新进度条
一个从服务器端下载apk 的小例子。下载过程中会实时的刷新进度条。这里使用了两种方法,一种是利用第三方的框架xutils中的HttpUtils来进行下载的,另一种是自己写的一个单线程下载的方法。 注意: 1、自己开子线程下载时不要在子线程中操作和UI有关的事情,否则会报错。这里利用发handler来对UI操作,保证在主线程(UI线程中)来操作刷新UI; 2、获取下载apk包大小的时候也要注意
基于html5的android开发
Android与HTML5融合 Android的HTML5应用程序概述 如何适配多分辨率的Android设备? 如何在Android中构建HTML5应用程序? 如何在Android中调试HTML5应用程序? 如何在Android中使用HTML5的本地储存? 如何在Android中使用HTML5的本地数据库? 如何在Android中使用HTML5的地理定位? 如何在Android中构建HTML5离线应用? 如何使用Canvas进行绘图?
基于html5的android开发教程解释
Android的HTML5应用程序概述 如何适配多分辨率的Android设备? 如何在Android中构建HTML5应用程序? 如何在Android中调试HTML5应用程序? 如何在Android中使用HTML5的本地储存? 如何在Android中使用HTML5的本地数据库? 如何在Android中使用HTML5的地理定位? 如何在Android中构建HTML5离线应用? 如何使用Canvas进行绘图?
获取android源码及在eclipse中查看源码
如何获取android源码及如何在eclipse中查看源码
Android源码:AMS、PMS、WMS原理分析
一、名称解释 AMS:ActivityManagerService PMS:PackageManagerService WMS:Window Manager Service 二、原理分析
PMS 简析
pms 介绍: 这是 android studio编译 apk,安装成功后的截图adb shell pm install -r "/data/local/tmp/com.crg.installtest"就是安装 apk。Android系统中PackageManagerService简称PMS,主要负责各种APK的安装,卸载,优化和查询。 Android系统中,pm工具是PMS的一个展现命令。通过
androiod 学习--PMS应用安装过程
前面,我们已经分析了,PMS的
Android 实现应用下载并在通知栏展示进度通知 打开APK文件
之前做项目,项目里需要自动更新,在这里记录一下。所谓自动更新APK无非就两点, 1.下载文件 2.展示下载进度 我这里是先展示一个下载进度对话框,当对话框消失时,在发送下载进度通知,很简单,上代码。 package com.lcworld.util; import android.app.Notification; import android.app.NotificationMan
Android应用开发新路线
This a very good html5 demo for Android development-This is a very good html5 demo for Android development Android应用开发新路线 利用HTML5开发Android应用程序! Android的HTML5应用程序概述 如何适配多分辨率的Android设备? 如何在Android中构建HTML5应用程序? 如何在Android中调试HTML5应用程序? 如何在Android中使用HTML5的本地储存? 如何在Android中使用HTML5的本地数据库? 如何在Android中使用HTML5的地理定位? 如何在Android中构建HTML5离线应用? 如何使用Canvas进行绘图?
android应用与服务器交互时的进度对话框ProgressDialog
以前研究与服务器交互时的进度对话框ProgressDialog在网上看得一些例子总是给我这个新手弄的云里雾里的,这么个简单的东西有点写的很复杂,有的逻辑不明确,今天我写了一个给新手们借鉴一下,以免走更多的弯路。   废话不多说了,先上图,最讨厌没图了。 下面看看实现代码: package com.example.progressdialogdemo; import andr
深入分析PMS服务(一)
PMS服务即PackageManagerService,主要用来进行APK的管理任务.但是今天,我们并不直接分析PMS的源码,而是从一个工具类PackageParse说起.
杂谈-Android源码(AMS、PMS、WMS)及部分原理机制
> 杂谈——Android从启动到程序运行发生的事情:http://blog.csdn.net/jonstank2013/article/details/51118563 > 【凯子哥带你学Framework】Activity启动过程全解析:http://blog.csdn.net/zhaokaiqiang1992/article/details/49428287 > gityuan:http
Android APP更新——service后台下载、进度提示、自动安装
检测应用的当前版本号。与服务端最新版本号进行比较。 /** * 获取版本号 需要在Activity 中使用 * @return 当前应用的版本号 */ public String getVersion() { try { PackageManager manager = this.getPackageMa
Android 应用程序建立与WMS服务之间的通信过程
我们知道WindowManagerService服务运行在SystemServer进程中,应用程序启动Activity时,需要请求WMS为启动的Activity创建对应的窗口,同时WMS也负责修改窗口属性,因此这里就涉及到应用程序进程与WMS服务之间的跨进程交互过程。在前面我们介绍了Android中的Binder通信机制,应用程序进程正是使用Binder通信方式和SystemServer进程交互的
libevent(1)----库的下载和安装
本文使用的libevent版本为2.0.21,开发环境为vs2010。 (1)首先将下载下来的libevent解压到本地磁盘中。我解压的路径为:D:\libevent-2.0.21-stable。           运行解压文件后,会在libevent-2.0.21-stable中会有该库的源文件。 (2)修改“D:\libevent-2.0.10-stable\event_iocp.c”
Android虚拟机安装软件
首先我们去下载一个apk程序包,比如chrome浏览器。 下载完成后把它拷贝到我们开发环境中的sdk->platform-tools目录里面。 在开始运行里面输入cmd打开命令行终端。如果是win7用户可以通过搜索cmd来找到终端程序。 命令行通过cd命令进入到刚才存放apk的目录里面。如图所示,我们可以看到apk已经在当前目录下。 启动虚拟机 现
android中DownloadManager实现版本更新,监听下载进度实例
DownloadManager简介 DownloadManager是Android 2.3(API level 9)用系统服务(Service)的方式提供了DownloadManager来处理长时间的下载操作。它包含两个静态内部类DownloadManager.Query(用来查询下载信息)和DownloadManager.Request(用来请求一个下载)。 Download
DownloadManager+MaterialDialog下载进度和6.0安装APK和“”应用未安装“”问题
首先来个图: 附个链接: material-dialogs再附个链接(以微信的APK下载地址为例吧): http://gdown.baidu.com/data/wisegame/8d5889f722f640c8/weixin_800.apk系统下载器DownLoadManager本身下载在通知栏中都有进度条,但是我想自己手动弹出一个dialog显示进度,所有就有了使用内容观察者ContentO
Android 插件化原理解析——Hook机制之AMS&PMS
在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook;插件框架通过AOP实现了插件使用和开发的透明性。在讲述DroidPlugin如何实现四大组件的插件化之前,有必要说明一下它对ActivityManagerServiche以及PackageManagerService的Hook方式(以下简称AMS,PMS)。 ActivityManagerS
Android开发小知识10篇 pdf合集
Android源代码下载指南(图解) 获取别人Android程序中的图片资源的方法 如何在Android模拟器中安装和卸载程序 如何在Eclipse中看Android2.2的源码 使用ScrollView实现滚动效果 缩小Android模拟器的显示尺寸 图解LogCat的用法 学习Android界面设计的超级利器HierarchyView 在Android中使用自定义图片按钮 在Android中制作没有标题条的窗口
adb install 显示进度
adb install 如果安装大文件。不知道进度很不人性化啊。所以写了个bat。bat代码如下. 用法:如新建myadb.bat文件。命令行:myadb demo.apk @echo off set apkname=%1% ::传入apk路径 echo 您输入了参数:%apkname% Set filename=%apkname% set filename=%~nx1 echo 文...
IOS安装进度查询
IOS安装应用程序时,检测当前所有安装的应用程序的信息,返回一个列表,本资源来自网络,调拭通过可用 ,上传备案。以后后续需要
DownloadManager获取当前下载进度
转载:http://blog.csdn.net/sir_zeng/article/details/8983430 从Android 2.3(API level 9)开始,Android用系统服务(Service)的方式提供了Download Manager来优化处理长时间的下载操作。Download Manager处理HTTP连接并监控连接中的状态变化以及系统重启来确保每一个下载任务顺利完成
android获取所有应用信息,判断系统应用或第三方应用,监听应用安装和卸载
获取所有应用及相关信息 方法1:ResolveInfo [java] view plaincopy 获取全部应用:       PackageManager packageManager = getPackageManager();       Intent mIntent = new Intent(Intent.ACT
Android 获取本地已安装的应用程序
有一个需求获取本地指定的系统App和已经下载的App列表: 实现非常简单,首先获取本机已安装的App,然后把我们指定的系统App过滤掉,存入一个List集合中,然后把其他的系统App过滤掉,剩下的在放入,另外一个List集合中,组合就Ok。 贴下主要代码: /** * Created by Xiho on 12:10 * MyBlog: xuhao.tech * GitHub: git
获取安装在手机中的所有应用包名
public void getPackagename(){ PackageManager pm = getPackageManager(); Intent i = new Intent(Intent.ACTION_MAIN,null); i.addCategory(Intent.CATEGORY_LAUNCHER); //List r
android保存第一次安装状态并初始化数据
package com.example.cuboo.gatherhar.activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import
实例144 如何在Web页中获取浏览器信息C#
实例144 如何在Web页中获取浏览器信息C# 实例144 如何在Web页中获取浏览器信息C# 实例144 如何在Web页中获取浏览器信息C#
如何在Android Market赚钱
如何在Android Market赚钱 如何在Android Market赚钱 如何在Android Market赚钱
《Android开发从零开始》——2.模拟器的使用
本节课的主要内容有: 1.如何在Eclipse中创建一个模拟器 2.修改配置模拟器 3.如何在模拟器中安装Android软件
获取app安装的进度效果
这个源码案例是在源码天堂那里转载过来的,大家要看演示图或者详细说明可以到那里看看吧,我这里就不多介绍了。 详细说明:http://code.662p.com/view/10940.html
MTK_android_如何预置APK(整合MTK回复)
1, 如何将带源码的 APK 预置进系统? 2, 如何将无源码的APK预置进系统? 3, 如何预置APK使得用户可以卸载,恢复出厂设置时不能恢复? 4, 如何预置APK使得用户可以卸载,并且恢复出厂设置时能够恢复?  [SOLUTION] 一、如何将带源码的APK预置进系统? 1)     在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹,以预置一个名为
Android APK安装与卸载机制
本文主要介绍Android系统如何实现APK安装、卸载、更新等操作。主要内容包括以下内容: 安装和卸载APK的方法有哪些,每种方法实现的原理是什么?APK安装和卸载过程中,系统数据发生了哪些变化?Android App端常用的Package Manager使用方法简介。 注:本文是在本人阅读、、以及网络中关于Android安装方式的基础上完成的。本人的主要工作在于阅读相关部分的Andr
android DownloadManager获取进度并显示(一)
DownloadManager是android2.3以后,系统下载的方法。DownloadManager是处理长期运行的HTTP下载的系统服务。客户端可以请求的URI被下载到一个特定的目标文件。客户端将会在后台与http交互进行下载,或者在下载失败,或者连接改变,重新启动系统后重新下载。这个类的实例应该通过getSystemService(字符串)传递DOWNLOAD_SERVICE获得。 Do
如何在Android应用中嵌入 AdMob 广告
如何在Android应用中嵌入 AdMob 广告,里面有个文档和一个 AdmobDemo
Qt on Android调用Jar包
演示如何在Qt on Android应用中通过JNI调用第三方Jar包
获取android 应用程序包名、图标、应用名称
有时候我们在开发程序时需要用到获取手机中已安装程序的包名、图标、应用名称,在这里写一篇简单的博客 还是跟往常一样,先上图,最后会给出程序的Demo 从上图可以看出,每个 Item 都包含了相应信息,所以在此为了封装信息,就写了一个 信息封装类 package com.cn.sz.fisi.appinfo.mode; import android.graphics.drawable.
Android百分比下载进度条
我的视频课程:《FFmpeg打造Android万能音频播放器》        现在很多APP中都会集成下载功能,所以有一个方便好看又实用的进度条来展示下载进度很有必要,也能提高用户体验,在这里我就把项目里的下载进度条抽取出来分享给大家,话不多说,先看效果图:这个进度条是自定义的一个View,其中有一个自定义属性就是百分比文字的大小(也可以把那两条显示颜色的进度条自定义属性,这里就没有实现,在代码里...
相关热词 c# 时间比天数 c# oracle查询 c# 主动推送 事件 c# java 属性 c# 控制台 窗体 c# 静态类存值 c#矢量作图 c#窗体调用外部程式 c# enum是否合法 c# 如何卸载引用
立即提问