美文网首页
Android基础知识-笔记

Android基础知识-笔记

作者: 一个冬季 | 来源:发表于2017-10-30 10:00 被阅读4次

    以下是我的学习笔记

    垃圾算法

    1、引用计数法,被引用一次后数字+1
    2、可达性算法,从Root对象开始搜索不可达的对象,搜索到了就回收(强引用,弱引用)
    3、标记算法,发现没有用到的就标记上,然后回收,但是这个样会导致碎片过多
    4、复制算法,扫描一些没有用到的对象,然后开辟一个新的内存空间,将用到的复制到新的,然后删除旧的
    5、标记整理,跟标记算法有点相似,在标记算法的基础上,删除不存活的对象,把后面的存活对象搬移过来,似的内存连续,解决了内存碎片的问题

    JVM/DVM/ART

    DVM:是由JVM变化而来的,它的类加载器跟JVM的不同,我们可以同时加载多个DVM,JVM是基于栈的,DVM是基于寄存器的
    ART:又是DVM的又一个进化了,DVM采用JIT将字节码转为机器码,效率低,ART采用AOT技术,只是我们在安装的时候,我们将程序转为机器码了,当然这样会牺牲更多的内存,和存储
    JVM:它基于栈,者意味着他要去栈里面查找数据,所需要的指令会很多,它会拖慢手机的速度,所以它不适合手机了

    class与dex文件的比较

    class/dex作用比较
    class文件:它是记录一个类文件的所有信息,比如记住了当前类的引用this,父类supper。class文件记录的信息往往比java文件记录的多
    dex文件:它记录的是整个工程(Android Project)的所有文件信息
    文件的结构

    class/dex文件结构比较
    1、8位字节的二进制文件
    2、各个数据紧密排序,无间隙,减少了文件的体积,加快了加载的速度
    3、每个类或者接口单独占据一个class文件,每个类单独管理,独立交叉,这样就导致加载一个.jar包的话,它就会有很多的.class文件

    dex文件结构:
    1、8位字节的二进制文件
    2、各个数据紧密排序,无间隙,减少了文件的体积,加快了加载的速度
    3、整个工程类信息都放在一个dex文件中,所有的.class--->一个.dex,这样就去掉了冗余信息

    LayoutInfalte.inflate,三个参数,二个参数的区别

    相关文章

      网友评论

          本文标题:Android基础知识-笔记

          本文链接:https://www.haomeiwen.com/subject/ndqppxtx.html