5.为试极致,DDR定频533不变频:(产品时不建议修改)
@@ -785,22 +786,22 @@
&clk_ddr_dvfs_table {
operating-points = <
/* KHz uV */
- 200000 1050000
+/* 200000 1050000
300000 1050000
- 400000 1100000
+ 400000 1100000*/
533000 1150000
>;
freq-table = <
/*status freq(KHz)*/
- SYS_STATUS_NORMAL 400000
- SYS_STATUS_SUSPEND 200000
+ SYS_STATUS_NORMAL 533000
+ /*SYS_STATUS_SUSPEND 200000
SYS_STATUS_VIDEO_1080P 240000
SYS_STATUS_VIDEO_4K 400000
SYS_STATUS_PERFORMANCE 528000
SYS_STATUS_DUALVIEW 400000
- SYS_STATUS_BOOST 324000
- SYS_STATUS_ISP 400000
+ SYS_STATUS_BOOST 533000
+ SYS_STATUS_ISP 400000*/
>;
bd-freq-table = <
/* bandwidth freq */
@@ -811,11 +812,11 @@
>;
auto-freq-table = <
240000
- 324000
- 396000
+/* 324000
+ 396000*/
528000
>;
- auto-freq=<1>;
+ auto-freq=<0>;
;
};
/include/ "act8846.dtsi"
6.rockchip,loader-logo-on = <0>;也可加快点
ANDROID部分优化
system/core/优化:
提频及去除selinux处理
project system/core/
diff --git a/init/Android.mk b/init/Android.mk
index b1fb135..4f25df7 100644
--- a/init/Android.mk
+++ b/init/Android.mk
@@ -24,7 +24,7 @@ LOCAL_SRC_FILES += bootchart.c
LOCAL_CFLAGS += -DBOOTCHART=1
endif
-ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
+ifneq (,$(filter userdebug eng user,$(TARGET_BUILD_VARIANT)))
LOCAL_CFLAGS += -DALLOW_LOCAL_PROP_OVERRIDE=1 -DALLOW_DISABLE_SELINUX=1
endif
diff --git a/init/init.c b/init/init.c
index 5bfa753..fca0dc9 100644
--- a/init/init.c
+++ b/init/init.c
@@ -1124,7 +1124,7 @@ static void rk_3288_set_cpu(void)
{
int fd;
char buf[128];
- char value[16]={"1416000"};
+ char value[16]={"1608000"};//1416000
char min_freq[16]={"126000"};//126M
bool can_set_cpu = false;
diff --git a/init/util.c b/init/util.c
index 12cb11d..2fd6502 100644
--- a/init/util.c
+++ b/init/util.c
@@ -532,5 +532,9 @@ int restorecon(const char* pathname)
int restorecon_recursive(const char* pathname)
{
+ if (is_selinux_enabled() <= 0 || !sehandle)
+ {
+ return 0;
+ }
return selinux_android_restorecon(pathname, SELINUX_ANDROID_RESTORECON_RECURSE);
}
RK3288_ANDROID5.1-SDK_V1.00_20150515RKToolswindowsAndroidToolrockdevrk3288-3.10-uboot.parameter.txt
FIRMWARE_VER:5.0.0
MACHINE_MODEL:rk3288
MACHINE_ID:007
MANUFACTURER:RK3288
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3288
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
#KERNEL_IMG: 0x62008000
#FDT_NAME: rk-kernel.dtb
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:console=ttyFIQ0 androidboot.selinux=disabled androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00300000@0x00092000(system),0x00008000@0x00392000(metadata),0x00200000@0x0039A000(userdata),0x00020000@0x0059A000(radical_update),-@0x005BA000(user)
# in section; per section 512(0x200) bytes
#CMDLINE:console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00100000@0x00092000(system),0x00008000@0x00192000(metadata),0x00020000@0x0039A000(radical_update),-@0x003BA000(userdata)
删减部分APK (只留下setting Search Downloads Face Search)
取消safe mode的检测,会等待1s的时间
project frameworks/base/
diff --git a/multiwindow/multiwindowcore.jar b/multiwindow/multiwindowcore.jar
index a4025cb..98b1840 100755
Binary files a/multiwindow/multiwindowcore.jar and b/multiwindow/multiwindowcore.jar differ
diff --git a/multiwindow/multiwindowpolicy.jar b/multiwindow/multiwindowpolicy.jar
index ef88dd9..5c6ce2f 100755
Binary files a/multiwindow/multiwindowpolicy.jar and b/multiwindow/multiwindowpolicy.jar differ
diff --git a/multiwindow/multiwindowservice.jar b/multiwindow/multiwindowservice.jar
index b88375b..2319428 100755
Binary files a/multiwindow/multiwindowservice.jar and b/multiwindow/multiwindowservice.jar differ
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index e254727..32af376 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -11556,15 +11556,8 @@ Intent.CATEGORY_LAUNCHER) */&& startFlags==0){
}
//if (goingCallback != null) goingCallback.run();
- new Thread("goingCallback thread") {
- @Override
- public void run() {
- if (goingCallback != null)
- goingCallback.run();
- }
- }.run();
-
-
+ if (goingCallback != null)
+ mHandler.post(goingCallback);
mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_USER_RUNNING_START,
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index b4c2117..a8c5570 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -993,7 +993,7 @@ public final class SystemServer {
// Before things start rolling, be sure we have decided whether
// we are in safe mode.
- final boolean safeMode = wm.detectSafeMode();
+ final boolean safeMode = false;//wm.detectSafeMode();
if (safeMode) {
mActivityManagerService.enterSafeMode();
// Disable the JIT for the system_server process
ZygoteInit处理
project frameworks/base/
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index ddb0ed1..bf5ead3 100755
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -275,7 +275,7 @@ public class ZygoteInit {
}
static void preload() {
- Log.d(TAG, "begin preload");
+ /*Log.d(TAG, "begin preload");
preloadClasses();
preloadResources();
preloadOpenGL();
@@ -283,7 +283,7 @@ public class ZygoteInit {
// Ask the WebViewFactory to do any initialization that must run in the zygote process,
// for memory sharing purposes.
WebViewFactory.prepareWebViewInZygote();
- Log.d(TAG, "end preload");
+ Log.d(TAG, "end preload");*/
/*mPreloadThread.setPriority(2);
mPreloadThread.start();
媒体库处理:
project frameworks/av/
diff --git a/media/libmedia/MediaProfiles.cpp b/media/libmedia/MediaProfiles.cpp
index 7ec32d2..99bf271 100755
--- a/media/libmedia/MediaProfiles.cpp
+++ b/media/libmedia/MediaProfiles.cpp
@@ -31,7 +31,7 @@
namespace android {
Mutex MediaProfiles::sLock;
-bool MediaProfiles::sIsInitialized = false;
+bool MediaProfiles::sIsInitialized = true;
MediaProfiles *MediaProfiles::sInstance = NULL;
const MediaProfiles::NameToTagMap MediaProfiles::sVideoEncoderNameMap[] = {
使用小UI:
project device/rockchip/common/
diff --git a/device.mk b/device.mk
index d522866..2b48360 100755
--- a/device.mk
+++ b/device.mk
@@ -20,9 +20,10 @@ $(shell python $(LOCAL_PATH)/auto_generator.py $(TARGET_PRODUCT) preinstall_del)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)
-PRODUCT_AAPT_CONFIG ?= normal large xlarge hdpi xhdpi xxhdpi
-PRODUCT_AAPT_PREF_CONFIG ?= xhdpi
-
+#PRODUCT_AAPT_CONFIG ?= normal large xlarge hdpi xhdpi xxhdpi
+#PRODUCT_AAPT_PREF_CONFIG ?= xhdpi
+PRODUCT_AAPT_CONFIG ?= normal hdpi
+PRODUCT_AAPT_PREF_CONFIG ?= hdpi
裁剪加载类
./frameworks/base/preloaded-classes 少加载会影响 App 启动速度 , 此地优化空间不大
./frameworks/base/core/res/ 会被打包成 framework-res.apk,确保没有冗余的资源图片,可以挨个检查图片、XML是否在系统中有用到;
二 Build 预提取 odex
通常手机升级后会显示 正在优化第*个应用,总共 * 个应用 这个就是在对 APK 做 dexopt 的优化。
odex 是 APK 中提取出来的可运行文件.
APK 中的 class.dex 会在 dex 优化过程众被转化为 odex 文件存放.
正常的开机过程中 , 系统需要在开机过程中从 APK 提取 dex 再运行.
所以我们可以在 Build 过程中预先提取 dex 将其优化为 odex , 进而达到加快启动速度的目的.
2.1 对于内置 SourceCode 的 APK
在Android.mk中都会通过include $(BUILD_PACKAGE)来编译,会调用到package.mk来提取 odex.
2.2 对于通过 prebuilt 方式内置的 APK
通过 prebuilt 方式预置的 APK , 默认不会被提取 odex.
2.3 设置方法
2.3.1 对于 App 的Android.mk
LOCAL_DEX_PREOPT := false
如果设置为 false 可以使整个系统使用提前优化的时候,某个app不使用提前优化。
如果设置为 true 则编译生成的文件有 oat 文件, 即在 build 过程中被提前优化.
2.3.2 对于 system.img 如果设置了:
WITH_DEXPREOPT := true
打开这个宏之后,无论是有源码还是无源码的预置apk预编译时都会提取odex文件。
如有发现user版本未提取odex,请检查device.mk文件配置:
ifeq ($(TARGET_BUILD_VARIANT),user)
WITH_DEXPREOPT := true
DONT_DEXPREOPT_PREBUILTS := true //此句注释掉
endif
对于64bit的芯片,若apk只有32bit的lib或者只能作为32bit运行,请在预置apk时在android.mk中添加下边的TAG标记此apk为32bit:
LOCAL_MULTILIB :=32
但是这个会导致 system.img 中的所有东西都被 pre-optimized , 即 system.img 会变得很大. 此时可能需要调大 system.img 的大小限制.
在编译的时候,/system/framework/ 目录下面的jar包,和 /system/app,/system/priv-app/,/system/vendor/app 下面的apk文件,都会在编译时,做odex优化。
2.3.3 对于 jar 包 , 如果不想jar包做odex优化,可以在/buid/core/java_library.mk文件中设置:
LOCAL_DEX_PREOPT := false
这样在编译时,jar包就不会做odex优化。
5.为试极致,DDR定频533不变频:(产品时不建议修改)
@@ -785,22 +786,22 @@
&clk_ddr_dvfs_table {
operating-points = <
/* KHz uV */
- 200000 1050000
+/* 200000 1050000
300000 1050000
- 400000 1100000
+ 400000 1100000*/
533000 1150000
>;
freq-table = <
/*status freq(KHz)*/
- SYS_STATUS_NORMAL 400000
- SYS_STATUS_SUSPEND 200000
+ SYS_STATUS_NORMAL 533000
+ /*SYS_STATUS_SUSPEND 200000
SYS_STATUS_VIDEO_1080P 240000
SYS_STATUS_VIDEO_4K 400000
SYS_STATUS_PERFORMANCE 528000
SYS_STATUS_DUALVIEW 400000
- SYS_STATUS_BOOST 324000
- SYS_STATUS_ISP 400000
+ SYS_STATUS_BOOST 533000
+ SYS_STATUS_ISP 400000*/
>;
bd-freq-table = <
/* bandwidth freq */
@@ -811,11 +812,11 @@
>;
auto-freq-table = <
240000
- 324000
- 396000
+/* 324000
+ 396000*/
528000
>;
- auto-freq=<1>;
+ auto-freq=<0>;
;
};
/include/ "act8846.dtsi"
6.rockchip,loader-logo-on = <0>;也可加快点
ANDROID部分优化
system/core/优化:
提频及去除selinux处理
project system/core/
diff --git a/init/Android.mk b/init/Android.mk
index b1fb135..4f25df7 100644
--- a/init/Android.mk
+++ b/init/Android.mk
@@ -24,7 +24,7 @@ LOCAL_SRC_FILES += bootchart.c
LOCAL_CFLAGS += -DBOOTCHART=1
endif
-ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
+ifneq (,$(filter userdebug eng user,$(TARGET_BUILD_VARIANT)))
LOCAL_CFLAGS += -DALLOW_LOCAL_PROP_OVERRIDE=1 -DALLOW_DISABLE_SELINUX=1
endif
diff --git a/init/init.c b/init/init.c
index 5bfa753..fca0dc9 100644
--- a/init/init.c
+++ b/init/init.c
@@ -1124,7 +1124,7 @@ static void rk_3288_set_cpu(void)
{
int fd;
char buf[128];
- char value[16]={"1416000"};
+ char value[16]={"1608000"};//1416000
char min_freq[16]={"126000"};//126M
bool can_set_cpu = false;
diff --git a/init/util.c b/init/util.c
index 12cb11d..2fd6502 100644
--- a/init/util.c
+++ b/init/util.c
@@ -532,5 +532,9 @@ int restorecon(const char* pathname)
int restorecon_recursive(const char* pathname)
{
+ if (is_selinux_enabled() <= 0 || !sehandle)
+ {
+ return 0;
+ }
return selinux_android_restorecon(pathname, SELINUX_ANDROID_RESTORECON_RECURSE);
}
RK3288_ANDROID5.1-SDK_V1.00_20150515RKToolswindowsAndroidToolrockdevrk3288-3.10-uboot.parameter.txt
FIRMWARE_VER:5.0.0
MACHINE_MODEL:rk3288
MACHINE_ID:007
MANUFACTURER:RK3288
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3288
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
#KERNEL_IMG: 0x62008000
#FDT_NAME: rk-kernel.dtb
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:console=ttyFIQ0 androidboot.selinux=disabled androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00300000@0x00092000(system),0x00008000@0x00392000(metadata),0x00200000@0x0039A000(userdata),0x00020000@0x0059A000(radical_update),-@0x005BA000(user)
# in section; per section 512(0x200) bytes
#CMDLINE:console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00100000@0x00092000(system),0x00008000@0x00192000(metadata),0x00020000@0x0039A000(radical_update),-@0x003BA000(userdata)
删减部分APK (只留下setting Search Downloads Face Search)
取消safe mode的检测,会等待1s的时间
project frameworks/base/
diff --git a/multiwindow/multiwindowcore.jar b/multiwindow/multiwindowcore.jar
index a4025cb..98b1840 100755
Binary files a/multiwindow/multiwindowcore.jar and b/multiwindow/multiwindowcore.jar differ
diff --git a/multiwindow/multiwindowpolicy.jar b/multiwindow/multiwindowpolicy.jar
index ef88dd9..5c6ce2f 100755
Binary files a/multiwindow/multiwindowpolicy.jar and b/multiwindow/multiwindowpolicy.jar differ
diff --git a/multiwindow/multiwindowservice.jar b/multiwindow/multiwindowservice.jar
index b88375b..2319428 100755
Binary files a/multiwindow/multiwindowservice.jar and b/multiwindow/multiwindowservice.jar differ
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index e254727..32af376 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -11556,15 +11556,8 @@ Intent.CATEGORY_LAUNCHER) */&& startFlags==0){
}
//if (goingCallback != null) goingCallback.run();
- new Thread("goingCallback thread") {
- @Override
- public void run() {
- if (goingCallback != null)
- goingCallback.run();
- }
- }.run();
-
-
+ if (goingCallback != null)
+ mHandler.post(goingCallback);
mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_USER_RUNNING_START,
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index b4c2117..a8c5570 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -993,7 +993,7 @@ public final class SystemServer {
// Before things start rolling, be sure we have decided whether
// we are in safe mode.
- final boolean safeMode = wm.detectSafeMode();
+ final boolean safeMode = false;//wm.detectSafeMode();
if (safeMode) {
mActivityManagerService.enterSafeMode();
// Disable the JIT for the system_server process
ZygoteInit处理
project frameworks/base/
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index ddb0ed1..bf5ead3 100755
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -275,7 +275,7 @@ public class ZygoteInit {
}
static void preload() {
- Log.d(TAG, "begin preload");
+ /*Log.d(TAG, "begin preload");
preloadClasses();
preloadResources();
preloadOpenGL();
@@ -283,7 +283,7 @@ public class ZygoteInit {
// Ask the WebViewFactory to do any initialization that must run in the zygote process,
// for memory sharing purposes.
WebViewFactory.prepareWebViewInZygote();
- Log.d(TAG, "end preload");
+ Log.d(TAG, "end preload");*/
/*mPreloadThread.setPriority(2);
mPreloadThread.start();
媒体库处理:
project frameworks/av/
diff --git a/media/libmedia/MediaProfiles.cpp b/media/libmedia/MediaProfiles.cpp
index 7ec32d2..99bf271 100755
--- a/media/libmedia/MediaProfiles.cpp
+++ b/media/libmedia/MediaProfiles.cpp
@@ -31,7 +31,7 @@
namespace android {
Mutex MediaProfiles::sLock;
-bool MediaProfiles::sIsInitialized = false;
+bool MediaProfiles::sIsInitialized = true;
MediaProfiles *MediaProfiles::sInstance = NULL;
const MediaProfiles::NameToTagMap MediaProfiles::sVideoEncoderNameMap[] = {
使用小UI:
project device/rockchip/common/
diff --git a/device.mk b/device.mk
index d522866..2b48360 100755
--- a/device.mk
+++ b/device.mk
@@ -20,9 +20,10 @@ $(shell python $(LOCAL_PATH)/auto_generator.py $(TARGET_PRODUCT) preinstall_del)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)
-PRODUCT_AAPT_CONFIG ?= normal large xlarge hdpi xhdpi xxhdpi
-PRODUCT_AAPT_PREF_CONFIG ?= xhdpi
-
+#PRODUCT_AAPT_CONFIG ?= normal large xlarge hdpi xhdpi xxhdpi
+#PRODUCT_AAPT_PREF_CONFIG ?= xhdpi
+PRODUCT_AAPT_CONFIG ?= normal hdpi
+PRODUCT_AAPT_PREF_CONFIG ?= hdpi
裁剪加载类
./frameworks/base/preloaded-classes 少加载会影响 App 启动速度 , 此地优化空间不大
./frameworks/base/core/res/ 会被打包成 framework-res.apk,确保没有冗余的资源图片,可以挨个检查图片、XML是否在系统中有用到;
二 Build 预提取 odex
通常手机升级后会显示 正在优化第*个应用,总共 * 个应用 这个就是在对 APK 做 dexopt 的优化。
odex 是 APK 中提取出来的可运行文件.
APK 中的 class.dex 会在 dex 优化过程众被转化为 odex 文件存放.
正常的开机过程中 , 系统需要在开机过程中从 APK 提取 dex 再运行.
所以我们可以在 Build 过程中预先提取 dex 将其优化为 odex , 进而达到加快启动速度的目的.
2.1 对于内置 SourceCode 的 APK
在Android.mk中都会通过include $(BUILD_PACKAGE)来编译,会调用到package.mk来提取 odex.
2.2 对于通过 prebuilt 方式内置的 APK
通过 prebuilt 方式预置的 APK , 默认不会被提取 odex.
2.3 设置方法
2.3.1 对于 App 的Android.mk
LOCAL_DEX_PREOPT := false
如果设置为 false 可以使整个系统使用提前优化的时候,某个app不使用提前优化。
如果设置为 true 则编译生成的文件有 oat 文件, 即在 build 过程中被提前优化.
2.3.2 对于 system.img 如果设置了:
WITH_DEXPREOPT := true
打开这个宏之后,无论是有源码还是无源码的预置apk预编译时都会提取odex文件。
如有发现user版本未提取odex,请检查device.mk文件配置:
ifeq ($(TARGET_BUILD_VARIANT),user)
WITH_DEXPREOPT := true
DONT_DEXPREOPT_PREBUILTS := true //此句注释掉
endif
对于64bit的芯片,若apk只有32bit的lib或者只能作为32bit运行,请在预置apk时在android.mk中添加下边的TAG标记此apk为32bit:
LOCAL_MULTILIB :=32
但是这个会导致 system.img 中的所有东西都被 pre-optimized , 即 system.img 会变得很大. 此时可能需要调大 system.img 的大小限制.
在编译的时候,/system/framework/ 目录下面的jar包,和 /system/app,/system/priv-app/,/system/vendor/app 下面的apk文件,都会在编译时,做odex优化。
2.3.3 对于 jar 包 , 如果不想jar包做odex优化,可以在/buid/core/java_library.mk文件中设置:
LOCAL_DEX_PREOPT := false
这样在编译时,jar包就不会做odex优化。
举报