首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

疑问: (1)了解APK安装流程有什么好处 (2)了解APK安装流程可以解决什么问题 一、可以在安装流程里做什么 安装就分为下面三个阶段,每个阶段可以做些什么工作,可以帮助我们优化安装流程,解决安装后的一些问题呢...(1)安装前、安装中:这两个阶段,第三方应用做不了什么,一般是应用分发APP应用商店、游戏中心、浏览器、应用宝这些应用会关注这两个状态。..." + ".package-archive"); mContext.startActivity(intent); 2.3 session命令安装 使用session安装的原因,是因为从Android 8.0...目录下,解压并扫描安装包,向资源管理器注入APK资源,解析AndroidManifest文件,并在/data/data目录下创建对应的应用数据目录,然后针对dalvik/art环境优化dex文件,保存到...3.4 安装中可以优化的点 安装中,这个过程看上去没有什么可以做的,但是对于厂商应用来说,应用安装速度,却是可以有很大的提升空间的。如应用更新的差分包升级就是一种常见的增量更新方式。

57330
您找到你想要的搜索结果了吗?
是的
没有找到

Android应用优化

sched gfx view wm 查看每个函数的耗时 通过 Android Studio Profiler 启动应用查看 为什么会出现白屏 在应用启动过程中 ActivityStack 的 startActivityLocked...view : null)); wm.addView(view, params); 如何优化 启动优化步骤分类 白屏的视觉优化 MultiDex 优化 逻辑代码优化 首页布局优化 白屏的优化 对于白屏启动页面的优化...,根据上述的代码分析,可以通过设置主题,为 windowBackground 添加与启动页一致的图片,视觉上可以骗过用户 MultiDex 优化应用的不断迭代,内部的方法数会不断增加,最终超过方法数上限...:name="com.weex.multidexinstall.MultiInstallActivity" android:launchMode="singleTask" android...:process=":install" /> 逻辑代码优化应用启动过程中,我们一般会在 Application 的 onCreate 中加载 SDK 以及读取 SharedPreference 中的值等耗时操作

31330

❤️Android 安装包体积优化 ❤️

实际开发应用时,包体积优化是必不可少的。...上一篇文章我们了解了安装包的结构。 本文主要分两部分: 安装包监控、 安装包大小优化。...安装包监控 Android Studio 的 APK Analyser 这是 Android Studio 提供的一个 APK 检测工具,通过它可以查看一个 apk 文件内部各项内容所占的大小,并且按照大小排序显示...安装优化实践 Lint查找无用文件 使用 Lint 查看未引用资源。Lint 是一个静态扫描工具,它可以识别出项目中没有被任何代码所引用到的资源文件。...image.png 上面就是未使用的资源:会使应用程序变大,并降低构建速度。 还有很多就不多介绍了,感兴趣的可以去玩玩。

1.1K30

Android 安装优化】WebP 应用 ( Android 中使用 libwebp.so 库编码 WebP 图片 )

文章目录 一、Android 中使用 libwebp.so 库编码 WebP 图片 二、完整代码示例 三、参考资料 一、Android 中使用 libwebp.so 库编码 WebP 图片 ---- libwebp.jar...import android.graphics.BitmapFactory import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity.../studio/write/convert-webp Android 中支持的媒体格式 : https://developer.android.google.cn/guide/topics/media...NDK 编译构建脚本参考文档 : ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build Android.mk...构建脚本 : https://developer.android.google.cn/ndk/guides/android_mk Application.mk 构建脚本 : https://developer.android.google.cn

57530

strictmode android,Android 应用性能优化-StrictMode(严格模式)

UI线程如果被阻塞5秒的话,那么应用程序此时就会弹出ANR的对话框,ANR对应用程序来说是一个很严重的问题。 如何防止应用程序出现ANR,怎么分析查看导致ANR问题的原因?...我们来介绍Android的严格模式。 怎样开启严格模式 有两种开启方式。 开发者选项 进入开发者选项,里面找到启用严格模式,打开。 当应用主线程执行长时间操作的话会闪锁屏幕。...detectLeakedSqlLiteObjects() // SQLite 对象 .detectLeakedClosableObjects() .penaltyLog() .penaltyDeath() // 触发违规操作,kill应用...(14269): class com.test.TestActivity; instances=2; limit=1 02-12 21:43:41.580: E/StrictMode(14269): android.os.StrictMode...class com.example.testa.BActivity; instances=2; limit=1 02-12 21:43:41.580: E/StrictMode(14269): at android.os.StrictMode.setClassInstanceLimit

53340

Android 逆向】应用安装目录 ( Android 应用的默认安装目录 | 查找 Android 应用安装目录 | 查询当前正在运行的应用包名 | 根据包名查询应用安装路径 )

文章目录 一、Android 应用的默认安装目录 二、查找 Android 应用安装目录 1、查询当前正在运行的应用包名 2、根据包名查询应用安装路径 一、Android 应用的默认安装目录 ---...- 应用安装Android 系统中后 , 普通应用安装到 /data/app/ 目录下 ; 如果是系统应用 , 会安装在 /system/app/ 目录下 ; 此外 , 还会在 /data/...data/package.name/ 目录下生成该应用的对应目录 , 这是应用的内存存储空间 , 应用拥有该目录下的所有权限 , 存放应用运行时所需的数据 ; 二、查找 Android 应用安装目录...---- 如果系统是定制的 , 可能应用安装目录不是上述路径 , 这时可以使用下面的方法查找 Android 应用安装目录 ; 1、查询当前正在运行的应用包名 使用 dumpsys activity.../.NexusLauncherActivity c848feb pid=3004 walleye:/system/app # 2、根据包名查询应用安装路径 上面查询的正在运行的应用中 , 查询起点中文网的应用包名

3.6K10

Android 应用安装过程分析

上面只是说到了Android的PMS的运行流程,而对于Android apk的整个安装流程并没有过多的介绍。本篇将重点介绍下Android apk的运行启动流程。...1, 将apk文件copy至data/app目录 在之前的文章我们说过,安装应用 Intent 的是 PackageInstallerActivity,但这个类厂商可以随意修改,这个类也并没有在 android.jar...在接受到 INIT_COPY 消息后,将要安装的参数信息加入到 PendingInstalls 中去,如果是第一个安装,还需要发送 MCS_BOUND 消息,用于触发实际安装过程。...系统并不会直接执行.dex,而是会在安装过程中执行dexopt操作来优化.dex文件,最终android系统执行的时优化后的’odex’文件(注意:这个odex文件的后缀也是.dex,其路径在data/...对于dalvik虚拟机,dexopt就是优化操作,而对于art虚拟机,dexopt执行的则是dex2oat操作,既将.dex文件翻译成oat文件。

3K90

如何优化您的 Android 应用(Go 版)

在这篇文章中,我将分享我们的合作伙伴的工作,优化他们的 Android 应用和游戏(Go 版)。...针对 Android(Go 版)设备和具有相同体验的所有其他设备使用相同的应用程序。在这种情况下,您正在优化现有应用程序以便在这些设备上顺利运行,并且您的现有用户可以从这些优化中获得性能优势。...确定应用策略后,在优化您的应用时需要考虑一些关键因素: 确保您的应用没有 ANR 和崩溃 针对 Android Oreo 您安装应用程序要低于 40 MB,游戏要低于 65 MB 应用程序的 PSS...保持安装的大小很小 ? APK 大小和安装率之间存在非常明显的相关性:APK 大小越小,安装量越高。使用 Android(Go 版)的人对磁盘大小非常敏感,因为这些手机通常存储容量有限。...总体而言,当您考虑如何让 Android 应用程序准备就绪(Go 版)时,请记住上述各种优化和调整。通过使用上述指导,所有开发人员已经完成了优化应用和游戏的工作,我相信您将能够取得类似的成果!

1.7K20

Android应用优化之流畅度实操

可能所讲解的内容偏向理论概念,因此这篇是流畅度优化实操,整篇主要分三层,UI层、代码逻辑层、IO层来讲述各个优化点,其中还会穿插多个辅助检测插件。可谓干货满满,希望对大家有用。...(注意:我们用模拟器作为例子,先用模拟器运行打开你的应用,再打开Hierarchy Viewer面板。) ?...代码逻辑层优化 经过上述的分析调整后,我们接着分析一下关于代码逻辑层的优化。...同样是通过Android Device Monitor面板,在下图左方选中需要分析的应用,再点击左上角按钮,当你觉得数据收集足够时,再次点击那个按钮即可,这时Traceview会自动打开trace文件。...流畅度优化经验总结 最后我来总结一下通篇对流畅度优化上的经验: UI布局优化 使用LinearLayout代替RelativeLayout,因为LinearLayout性能上稍微好一点 如果复杂的布局,

1.1K30

Android 性能优化应用启动优化 ( 安卓应用启动分析 | Launcher 应用启用普通安卓应用 | 应用进程分析 )

tag) 方法分析 三、 Android 应用进程分析 上一篇博客 【Android 性能优化应用启动优化 ( 安卓应用启动分析 | Launcher 应用简介 | Launcher 应用源码简介...应用中启动普通 Android 应用的源码 ; 一、 Launcher 应用 startActivitySafely 方法分析 ---- 在 Launcher 应用中 , 点击快捷方式图标 , 调用...onClick 方法 , 如果判定点击的图标组件时应用图标 , 会触发调用 startActivitySafely 方法 , 启动该图标对应的 Android 应用 Activity 界面 ;..., 在该方法中 , 启动 Android 应用的启动 Activity ; 3 ....\launcher2\Launcher.java 界面中定义 , 该界面是 Launcher 应用的主界面 ; 三、 Android 应用进程分析 ---- 1 .

90210

Android 移动应用性能优化 之 友盟

移动应用性能优化 之友盟 前言 正文 一、问题 1. ANR 2. NullPointerException 二、友盟使用 1. 创建平台应用 2....当时这个读者就找到我,然后我就开始排查,首先是启动App的时候做了什么,这里还会涉及到一个点,那就是App的启动优化,这个点很关键。...所以使用Java开发Android的时候要特别注意这一点,注意null。这一点Kotlin就做的很好,因为空安全这个特性。...创建平台应用   登录后点击 进入工作台,这里可以查看应用信息,如果还没有创建过应用就添加新应用。   在友盟上创建应用,获取AppKey,   注册应用。...这里有一个预初始化和一个正式初始化,预初始化在程序第一次安装运行时使用。在用户同意了隐私政策之后调用正式的初始化,比如这样   好了,现在基本上就完成了对接的工作,下面就来使用它。 2.

53330

Android 性能优化应用启动优化 ( 安卓应用启动分析 | ActivityThread 主函数分析 | 应用初始化 | 启动优化项目 )

方法 ( 应用创建 ) 四、 启动优化项目 一、 应用入口函数 ActivityThread 主函数 main ---- 1 ....Android 应用主函数简介 : 安卓应用的 main 函数定义在 ActivityThread.java 中 , 该主函数被封装起来了 , Android 应用在编译之后 , 是需要被打包到 apk...安装文件中的 , 这是整个应用的入口函数 , 这个入口文件就是 ActivityThread.java 类 ; 安卓应用主函数 : Android 开发者开发安卓应用时 , 是不需要自己定义主函数的...\app\ActivityThread.java , 这是 Android 应用的入口主函数定义文件 二、 ActivityThread 类 attach 方法 ( 应用加载 ) ---- 1 ....\app\ActivityThread.java , 这是 Android 应用的入口主函数定义文件 四、 启动优化项目 在 Launcher 应用点击图标后 , 启动应用 , 系统为应用开启进程

84410

Android 移动应用性能优化 之 友盟

移动应用性能优化 之友盟 前言 正文 一、问题 1. ANR 2. NullPointerException 二、友盟使用 1. 创建平台应用 2....App是一个天气的App,可以实时定位你当前的所在位置,查询到当地的天气,并且提供地图定位模式和语音输入快速查询的方式,项目的源码地址如下:GoodWeather,不方便下载源码的可以直接通过二维码下载安装体验一下...当时这个读者就找到我,然后我就开始排查,首先是启动App的时候做了什么,这里还会涉及到一个点,那就是App的启动优化,这个点很关键。...创建平台应用   登录后点击 进入工作台,这里可以查看应用信息,如果还没有创建过应用就添加新应用。   在友盟上创建应用,获取AppKey,   注册应用。...这里有一个预初始化和一个正式初始化,预初始化在程序第一次安装运行时使用。

37510

Android 优化——启动优化

Android 优化目录 ---- App 启动方式 冷启动 App 没有启动过或 App 进程被杀,系统中不存在该 App 进程,此时启动即为冷启动。...启动时间检测 adb adb shell am start -W [应用报名]/[Activity的全路径名],得到三个时间值: ThisTime 一般和 TotalTime 相同,如果应用启动开启了一个过渡用的全透明页面预处理一些事情...TotalTime 应用启动时间,包括创建进程、Application 初始化、Activity 初始化到显示。 WaitTime 一般比 TotalTime 大,包括系统的耗时。...代码打点 Application 的 attachBaseContext 在应用进程首先创建时调用,可做冷启动的开始打点。...优化 布局优化 逻辑优化 必要且耗时的逻辑,考虑单独开线程执行 必要不耗时,按优先级高低依次执行 非必要的延迟初始化,等用到再初始化 针对冷启动的欺骗效果 使用 placeholder UI

92930

Android 优化——存储优化

Android 优化目录 ---- 交换数据格式 Google 推出的 Protocal Buffers 是一种更轻便高效的存储结构,但消耗内存较大。...因此,最好的优化方法就是避免频繁地读写 SharedPreferences,减少无谓的调用。...异步线程 Android 中数据不多时表查询可能耗时不多,不会导致 ANR,不过大于 100ms 时同样会让用户感觉到延时和卡顿,可以放在线程中运行,但 sqlite 在并发方面存在局限,多线程控制较麻烦...在应用启动过程中最先初始化完数据库,避免进入应用后再初始化导致相关操作时间变长。...SQLiteStatement 使用 Android 系统提供的 SQLiteStatement 来插入数据,在性能上有一定的提高,并且也解决了 SQL 注入的问题。

1.2K20
领券