首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏刘望舒

    Android包管理机制之PackageInstaller安装APK

    前言 在本系列上一篇文章Android包管理机制(一)PackageInstaller的初始化中我们学习了PackageInstaller是如何初始化的,这一篇文章我们接着学习PackageInstaller packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java public packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java @Override packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java @Override 3.总结 本篇文章讲解了PackageInstaller安装APK的过程,简单来说就两步: 将APK的信息通过IO流的形式写入到PackageInstaller.Session中。

    1.7K30发布于 2018-07-30
  • 来自专栏刘望舒

    Android包管理机制(一)PackageInstaller的初始化

    通过adb命令安装:adb 命令包括adb push/installAPK的安装方式主要有以下2种: 通过系统安装器packageinstaller进行安装:packageinstaller是系统内置的应用程序 </activity> InstallStart是PackageInstaller中的入口Activity,其中PackageInstaller是系统内置的应用程序,用于安装和卸载应用。 当我们调用PackageInstaller来安装应用时会跳转到InstallStart,并调用它的onCreate方法: packages/apps/PackageInstaller/src/com/android packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallStaging.java private final class PackageInstaller的初始化就讲到这,关于PackageInstaller的安装APK的过程会在本系列的下一篇文章进行讲解。

    2.5K30发布于 2018-06-22
  • 来自专栏胡飞洋的Android进阶

    “终于懂了”系列:APK安装过程 完全解析!

    com.miui.packageinstaller/com.miui.packageInstaller.NewPackageInstallerActivity: +220ms com.miui.packageinstaller /com.miui.packageInstaller.NormalInstallReadyActivity: +97ms com.miui.packageinstaller/com.android.packageinstaller.miui.PermissionInfoActivity /com.android.packageinstaller.InstallStaging: +349ms com.google.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity /com.android.packageinstaller.InstallInstalling: +296ms com.google.android.packageinstaller/com.android.packageinstaller.InstallSuccess PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL

    7.2K31发布于 2021-11-12
  • 来自专栏Java呓语

    Tips·检测应用程序被卸载

    当我们点击卸载按钮时,会打开卸载确认界面com.android.packageinstaller.UninstallerActivity。 ? 当后台线程发现前台的活动是com.android.packageinstaller.UninstallerActivity,这便确认用户是希望卸载我们的APP。 Activity ::" + activityName); if (activityName.equals("com.android.packageinstaller.UninstallerActivity

    1.5K30发布于 2018-08-21
  • 来自专栏Android必知必会

    Android 必知必会 - InstallerPackageName 的一点补充

    原文链接:Android:关于InstallerPackgeName的二三事 上面的文章内容有几点要说下: 1、常见的返回值: com.google.android.packageinstaller 设备默认安装器,这个是特殊机器的包名情况,我通过阅读各版本(2.3-7.1)的 Android 源码,发现都是 com.android.packageinstaller ,不过最终是哪个还得看手机厂商

    1.2K30发布于 2019-07-01
  • 来自专栏测试开发架构之路

    Appium系列文章(1)获取appPackage和appActivity

    今日头条:com.android.packageinstaller/.permission.ui.GrantPermissionsActivity  adb shell monkey -p com.android.packageinstaller

    1.9K40发布于 2018-12-14
  • 来自专栏Python 自动化

    自动化篇 | 再也不用担心老人们用智能机了

    description="@string/desc" android:notificationTimeout="100" android:packageNames="com.android.packageinstaller ,com.miui.packageinstaller,com.android.packageinstaller/.FlymePackageInstallerActivity" /> 重写 onAccessibilityEvent

    59830发布于 2020-03-23
  • 来自专栏北山啦的博客

    Python自动化下载模块

    2021/1/29 13:56 # @Blog:https://blog.csdn.net/qq_45176548/article/details/111601730 import os class PackageInstaller self.install_package("mongodb") self.install_package("redis") if __name__ == '__main__': m_obj = PackageInstaller

    47070编辑于 2022-11-27
  • 来自专栏Netkiller

    利用startActivityForResult返回数据到前一个Activity(附源码+解析)

    RESULT_FIRST_USER,Android源码对这个取值的定义是“user-defined activity results”(用户自定义的),我在源码中全局搜索了下,用的地方不多,挑了一两个使用的地方: (1)PackageInstaller savedInstanceState) { super.onCreate(savedInstanceState); int statusCode = getIntent().getIntExtra(PackageInstaller.EXTRA_STATUS , PackageInstaller.STATUS_FAILURE); if (getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT setResult(Activity.RESULT_FIRST_USER, result); finish(); } (2)PackageInstaller下面的 setResult(RESULT_FIRST_USER, result); } (3)PackageInstaller下面的UninstallerActivity.java(卸载apk的相关页面):在onCreate

    2.5K20发布于 2021-02-12
  • 来自专栏Android 研究

    APK安装流程详解11——普通应用安装简介

    本片文章的主要内容如下: 1、概述 2、Android应用程序的几种安装方式 3、应用安装涉及到的目录 4、安装流程概述 5、PackageInstaller.apk与PackageManger 6、普通的 五、PackageInstaller.apk与PackageManger PackageInstaller.apk地址 PackageInstaller/AndroidManifest.xml.png (一)、PackageInstaller概述 PackagInstaller是安卓上默认的应用程序,用它来安装普通文件。 PackageInstaller提供了用户界面来管理应用或者包文件。PackageInstaller调用一个叫做InstallAppProgress的activity来获取用户发出的指令。 (二)、PackageInstaller内容解析 PackageInstaller的结构如下: PackageInstaller结构1.png PackageInstaller结构2.png 这里面重点介绍以下两个类

    10.8K42发布于 2018-08-30
  • 来自专栏python3

    Appium 实战练习一

    driver.launch_app() 25 time.sleep(3) 26 driver.find_element_by_id("com.android.packageinstaller

    42710发布于 2020-01-19
  • 来自专栏Android&Java技术

    如何获取Android系统应用的Action

    查看输出的Logcat: 3.然后在系统应用源码中搜索系统软件packageinstaller,并找到PackageInstallerActivity文件,并在它的AndroidManifest.xml

    2.4K10发布于 2020-02-27
  • 来自专栏软件技术交流

    安卓第三方应用怎样默认权限

    我们现在packages\apps\PermissionController\src\com\android\packageinstaller\permission\model\AppPermissionGroup.java } } return false; }然后在packages\apps\PermissionController\src\com\android\packageinstaller

    1.7K30编辑于 2023-07-01
  • 来自专栏happyJared

    APP自动化:Appium极简上手

    APP获取的某些权限""" try: ask = wait.until(EC.presence_of_element_located((By.ID, 'com.android.packageinstaller ask.click() allow = wait.until( EC.presence_of_element_located((By.ID, 'com.android.packageinstaller

    2.6K10发布于 2018-12-06
  • 来自专栏刘望舒

    Android PMS处理APK的复制

    前言 在上一篇文章Android包管理机制之PackageInstaller安装APK中,我们学习了PackageInstaller是如何安装APK的,最后会将APK的信息交由PMS处理。 String packageName, File stagedDir, String stagedCid, IPackageInstallObserver2 observer, PackageInstaller.SessionParams 3.总结 本文主要讲解了PMS是如何处理APK复制的,主要有两个步骤: PackageInstaller安装APK时会将APK的信息交由PMS处理,PMS通过向PackageHandler发送消息来驱动

    1.4K50发布于 2018-07-30
  • 来自专栏vivo互联网技术

    打通“任督二脉”:Android 应用安装优化实战

    下面给出兼容方案: int sessionId = packageInstaller.createSession(params); InstallLog.d(TAG, "doPackageStage creat sessionId is : " + sessionId); final byte[] buffer = new byte[65536]; session = packageInstaller.openSession FileInputStream(file); final long sizeBytes = file.length(); final OutputStream out = session.openWrite("PackageInstaller

    1K30发布于 2021-07-13
  • 来自专栏python学习教程

    Python实现全自动下载抖音视频

    button_1.click()# 禁止电话权限,点击button_2 = wait.until(EC.presence_of_element_located((By.ID, 'com.android.packageinstaller button_2.click()# 禁止位置权限,点击button_3 = wait.until(EC.presence_of_element_located((By.ID, 'com.android.packageinstaller

    1.5K10发布于 2020-11-10
  • 来自专栏开发者技术前线

    免Root实现Apk静默安装,覆盖兼容市场主流的98%的机型

    逻辑: 我们可以指定监测的某个包,这里我为了实现自动安装,因此监测com.android.packageinstaller“包下的com.android.packageinstaller.InstallerActivity aAccessibilityEvent.getSource().getText().toString().trim(); if(packageName.equals("com.android.packageinstaller

    2.9K30发布于 2020-11-23
  • 来自专栏androud

    android N(API24) 版本兼容

    external-path path="." name="external_storage_root" /> </paths> com.tmgp.sgame.conan.myapplication是包名,替换成自己的包名 packageinstaller

    92600发布于 2021-04-05
  • 来自专栏开发者技术前线

    静默安装从入门到转行!

    api和底层的pms交互进行安装,普通apk无法直接安装的第三方应用的, 因为源码没有开放其方法,只有我们发送一条安装意图才可以交由pms来安装apk,具体由系统级别的apk(包名com.android.packageinstaller 因为面向客户的apk是非系统的,那么是不是我们无法做到除了以上内置的静默安装了呢 其实也未必: 目前我们可以采用辅助功能(Accessibility)实现自动安装,用来代替用户点击,监控在com.android.packageinstaller

    1.3K30发布于 2020-11-23
领券