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

Posted 嘉禾世兴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《android开发艺术探索》读书笔记(十三)--综合技术相关的知识,希望对你有一定的参考价值。

接上篇《android开发艺术探索》读书笔记(十二)--Bitmap的加载和Cache

No1:

使用CrashHandler来获取应用的crash信息

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:

反编译

以上是关于《android开发艺术探索》读书笔记(十三)--综合技术的主要内容,如果未能解决你的问题,请参考以下文章

《android开发艺术探索》读书笔记--Android的线程和线程池

《android开发艺术探索》读书笔记--Android的消息机制

《android开发艺术探索》读书笔记(十五)--Android性能优化

Android动画(开发艺术探索读书笔记)

《android开发艺术探索》读书笔记--WindowManager

《android开发艺术探索》读书笔记--RemoteViews