`
想不尽的念
  • 浏览: 24265 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android M low ram device优化apk安装速度

阅读更多
安装apk慢是因为dex2oat行为导致的,要优化可以牺牲一些检查,强制用vmSafeMode去安装,facebook举例,低端机器从安装10分钟改善为1分钟不到。修改方法如下:
  1 diff --git a/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
  2 index f35552d..8ae1e13 100644
  3 --- a/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
  4 +++ b/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
  5 @@ -115,7 +115,12 @@ final class PackageDexOptimizer {
  6              return DEX_OPT_SKIPPED;
  7          }
  8
  9 +/*
10          final boolean vmSafeMode = (pkg.applicationInfo.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0;
11 + */
12 +        boolean vmSafeMode = (pkg.applicationInfo.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0;
13          final boolean debuggable = (pkg.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
14
15          final List<String> paths = pkg.getAllCodePathsExcludingResourceOnly();
16 @@ -171,6 +176,13 @@ final class PackageDexOptimizer {
17                          throw new IllegalStateException("Invalid dexopt needed: " + dexoptNeeded);
18                      }
19
20 +                    if (pkg.applicationInfo.packageName.contains("facebook")) {
21 +                        vmSafeMode = true;
22 +                    }
23                      Log.i(TAG, "Running dexopt (" + dexoptType + ") on: " + path + " pkg="
24                              + pkg.applicationInfo.packageName + " isa=" + dexCodeInstructionSet
25                              + " vmSafeMode=" + vmSafeMode + " debuggable=" + debuggable
分享到:
评论

相关推荐

    Android-nRF-Mesh-Library-master.zip_android_nRF_nrf mesh apk_nrf

    《Android-nRF-Mesh-Library-master:蓝牙nrf52技术在Android上的应用与实现》 在当前的物联网(IoT)领域,低功耗蓝牙(Bluetooth Low Energy, BLE)技术已经成为连接各种智能设备的关键技术之一。特别是nRF52系列...

    HC_BLE助手_蓝牙透传APK代码_androidble_android_

    【标题】"HC_BLE助手_蓝牙透传APK代码_androidble_android_" 提供的是一个针对Android平台的蓝牙透传应用程序的源代码。该程序旨在实现设备间的蓝牙低功耗(BLE,Bluetooth Low Energy)透明传输功能,使得数据可以...

    Android代码-Developer Toolbelt – Fill RAM

    On-device low-memory testing for Android. Fill your phone's RAM and see how your application performs. Download the app, tap the Fill Memory button, and re-open your app - hopefully nothing breaks :) ...

    android Bluetooth.apk源代码

    在Android系统中,`Bluetooth.apk`是负责蓝牙功能的核心应用程序,它提供了用户界面和与硬件蓝牙模块交互的逻辑。这个源代码可以帮助我们深入理解Android蓝牙系统的内部运作机制,包括设备搜索、配对、数据传输等...

    ble android apk 源码 多个参考例子源码

    **BLE(Bluetooth Low Energy)在Android开发中的应用** BLE,即蓝牙低功耗技术,是现代物联网设备中广泛采用的通信方式,特别是在移动设备如Android手机上。它为短距离、低功耗的数据传输提供了便利,特别适用于...

    Android Bluetooth Low Energy

    **Android Bluetooth Low Energy** 在Android平台上,Bluetooth Low Energy(BLE),也称为Bluetooth 4.0或Bluetooth Smart,是一种设计用于高效、低功耗通信的技术。它特别适合于那些需要长时间运行且数据传输量...

    Android代码-LowPoly

    1.You can import the module lowpoly to your project by Android Studio 2.LowPoly is available in the MavenCentral, so getting it as simple as adding it as a dependency compile '...

    Android安卓隐藏任务栏及增加Home属性

    对于Unity项目,则需要修改位于 `D:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Apk\AndroidManifest.xml` 的文件: ```xml android:name=".YourActivityName" android:label="@string/app...

    Android studio BLE通信助手(工程文件+apk)

    最后,由于这个项目提供了一个apk文件,这意味着用户也可以直接在Android设备上安装和测试这个BLE通信助手,无需编译工程。这对于测试和演示BLE通信功能非常方便。 总结来说,这个Android Studio BLE通信助手项目是...

    AndroidBLE聊天案例BLE服务端

    Bluetooth Low Energy(BLE),也被称为蓝牙智能,是一种低功耗的无线通信技术,广泛应用于移动设备、物联网设备间的短距离通信。在Android平台上,开发BLE应用涉及到对Android Bluetooth API的深入理解和使用。本...

    Android内核和驱动篇-Android内核介绍[归纳].pdf

    2. Android 电源管理(PM):一个基于标准 Linux 电源管理系统的轻量级的 Android 电源管理驱动,针对嵌入式设备做了很多优化。源代码位于 kernel/power/earlysuspend.c kernel/power/consoleearlysuspend.c kernel/...

    Android SDK (SDK Platforms)-android-18.zip

    9. **AVD (Android Virtual Device)**:SDK还包含了创建和管理AVD(Android Virtual Devices)的工具,开发者可以使用AVD来模拟不同配置的Android设备进行测试。 10. **更新和管理工具**:SDK Manager是Android SDK...

    Bluetooth Low Energy in Android Java Your Guide to Programming the Internet azw3

    Bluetooth Low Energy in Android Java Your Guide to Programming the Internet of Things 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Android4.4 APIDemo

    5. **权限管理**:4.4版本强化了运行时权限的概念,虽然不是全部权限都在这个版本实现,但这是向后来的Android M(Marshmallow)过渡的重要一步。API Demo中的相关代码展示了如何在运行时请求和管理权限。 6. **...

    Android内核和驱动篇-Android内核介绍

    2. Android 电源管理(PM):一个基于标准 Linux 电源管理系统的轻量级的 Android 电源管理驱动,针对嵌入式设备做了很多优化。源代码位于 kernel/power/earlysuspend.c、kernel/power/consoleearlysuspend.c、...

    Cache测试apk源码

    在Android开发中,缓存(Cache)是一种非常重要的机制,用于提高数据的访问速度和用户体验。当应用程序需要频繁访问的数据可以被暂时存储在缓存中,下次需要时就能快速获取,而无需再次从磁盘或者网络加载。"Cache...

    深入探索Android内存优化1

    【深入探索Android内存优化1】 Android内存优化是开发者必须掌握的关键技能之一,它涉及到应用程序的稳定性和用户体验。本文将深入探讨内存优化的相关概念、工具、管理机制以及常见问题,帮助开发者构建一个完整的...

    Tuning-android-for-lowmemory-abs-2014.pdf

    文档提到了“Project Svelte”项目,该项目旨在通过一系列内存优化措施,在仅配备512MB RAM的设备上运行Android系统。这项工作包括对Android框架进行各种内存节省的改变,提供针对Android的调整旋钮,验证Linux调整...

    ANDROID 下nrf开发 开源源码。android4.3或者更高版本

    在Android平台上进行nrf开发,通常指的是与Nordic Semiconductor的低功耗蓝牙(Bluetooth Low Energy, BLE)设备交互的过程。Nordic Semiconductor是一家知名的无线通信解决方案提供商,其nRF系列芯片广泛应用于...

    Android代码-Low Poly 图片生成器

    &gt; 能够生成low poly风格的图片,Android版本的实现 效果图 使用方法 LowPoly.generate(inputStream,outputStream); 或者 /** * 生成low poly风格的图片 * * @param inputStream 源图片 * @param outputStream ...

Global site tag (gtag.js) - Google Analytics