《android开发艺术探索》读书笔记(十三)--综合技术

大鹏一日同风起,扶摇直上九万里。这篇文章主要讲述《android开发艺术探索》读书笔记(十三)--综合技术相关的知识,希望能为你提供帮助。
接上篇《android开发艺术探索》读书笔记(十二)--Bitmap的加载和Cache
No1:
使用CrashHandler来获取应用的crash信息
【《android开发艺术探索》读书笔记(十三)--综合技术】No2:
在android中单个dex文件所能够包含的最大方法数为65536,这包含Android FrameWork、依赖的jar包以及应用本身的代码中的所有方法。
No3:
使用multidex来解决方法数越界

apply plugin: \'com.android.application\'android { compileSdkVersion 22 buildToolsVersion "22.0.1"defaultConfig { applicationId "com.ryg.multidextest" minSdkVersion 8 targetSdkVersion 22 versionCode 1 versionName "1.0"// enable multidex support multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(\'proguard-android.txt\'), \'proguard-rules.pro\' } } }afterEvaluate { println "afterEvaluate" tasks.matching { it.name.startsWith(\'dex\') }.each { dx -> def listFile = project.rootDir.absolutePath + \'/app/maindexlist.txt\' println "root dir:" + project.rootDir.absolutePath println "dex task found: " + dx.name if (dx.additionalParameters == null) { dx.additionalParameters = [] } dx.additionalParameters += \'--multi-dex\' dx.additionalParameters += \'--main-dex-list=\' + listFile dx.additionalParameters += \'--minimal-main-dex\' } }dependencies { compile fileTree(dir: \'libs\', include: [\'*.jar\']) compile \'com.android.support:appcompat-v7:22.1.1\' compile \'com.android.support:multidex:1.0.0\' }

afterEvaluate区域是为了指定dex文件中包含哪些类,类名写在maindexlist.txt中
注意:multidex的jar包中的9个类必须也要打包到主dex中
代码支持
public class TestApplication extends Application {@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }}

Multidex方法虽然很好地解决了方法数越界这个问题,但也会导致应用启动速度会降低,是因为应用启动时会加载额外的dex文件。
No4:
Android动态加载技术(插件化技术)
No5:
反编译

    推荐阅读