zoukankan      html  css  js  c++  java
  • 《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:

    反编译

  • 相关阅读:
    第17章 委托
    第16章 数组
    第15章 枚举类型和位标志
    第14章 字符、字符串和文本处理
    第13章 接口
    第12章 泛型
    第10章 属性
    第11章 事件
    内部类(转载)
    Collections.sort的三种用法
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/8340978.html
Copyright © 2011-2022 走看看