91精产品自偷自偷综合官网版下载-91精产品自偷自偷综合下-91精品-91精品91久久久-91精品成人-91精品成人www

網站建設資訊

NEWS

網站建設資訊

Android類加載模式-創新互聯

類圖

 Android 類加載模式

創新互聯專注于企業全網整合營銷推廣、網站重做改版、滁州網站定制設計、自適應品牌網站建設、H5頁面制作成都做商城網站、集團公司官網建設、成都外貿網站制作、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為滁州等各大城市提供網站開發制作服務。

相關類介紹

BootClassLoader

調用流程
1、ZygoteInit的main方法
2、預加載常用類
3、讀取預加載類名時獲取BootClassLoader單例
4、調用classForName(C實現)獲取結果

DexClassLoader

構造函數
public DexClassLoader (String dexPath, String dexOutputDir, String libPath, ClassLoader parent)
optimizedDirectory是用來緩存我們需要加載的dex文件的,并創建一個DexFile對象,如果它為null,那么會直接使用dex文件原有的路徑來創建DexFile  
DexClassLoader可以指定自己的optimizedDirectory,所以它可以加載外部的dex,因為這個dex會被復制到內部路徑的optimizedDirectory
注意:該加載器能夠加載未安裝的jar/apk/dex

PathClassLoader

構造函數
public PathClassLoader (String path, String libPath, ClassLoader parent)
調用流程
1、Zygote進程啟動SyetemServer進程
2、ZygoteInit的startSystemServer方法
3、Zygote進程通過forkSystemServer方法fork自身創建子進程并且調用handleSystemServerProcess
4、 工廠方法創建PathClassLoader
注意:該加載器只能加載系統中已經安裝過的apk

SecureClassLoader和URLClassLoader

SecureClassLoader類和JDK8中的SecureClassLoader類的代碼是一樣的,它繼承了抽象類ClassLoader。SecureClassLoader并不是ClassLoader的實現類,而是拓展了ClassLoader類加入了權限方面的功能,加強了ClassLoader的安全性。
URLClassLoader類和JDK8中的URLClassLoader類的代碼是一樣的,它繼承自SecureClassLoader,用來通過URl路徑從jar文件和文件夾中加載類和資源。

InMemoryDexClassLoader

InMemoryDexClassLoader是Android8.0新增的類加載器,繼承自BaseDexClassLoader,用于加載內存中的dex文件。

具體加載源碼

  • 從已裝載過的類中找

  • 如果從已裝載過的列表中找不到,則從父類裝載

  • 如果父類找不到,從子類裝載

    protected Class<> loadClass(String className, boolean resolve) throws ClassNotFoundException {
    Class<> clazz = findLoadedClass(className);//從已裝載過的類中找。

        if (clazz == null) {
            ClassNotFoundException suppressed = null;
            try {
                clazz = parent.loadClass(className, false);//由父類裝載
            } catch (ClassNotFoundException e) {
                suppressed = e;
            }
    
            if (clazz == null) {
                try {
                    clazz = findClass(className);//由子類裝載
                } catch (ClassNotFoundException e) {
                    e.addSuppressed(suppressed);
                    throw e;
                }
            }
        }
    
        return clazz;
    }

    public Class findClass(String name, List suppressed) {
    for (Element element : dexElements) {//這里進行遍歷查詢
    DexFile dex = element.dexFile;

            if (dex != null) {
               //從DexFile中試圖加載Class,從這里看出,從第一個開始遍歷,如果查到就返回,這就是熱修復的基本原理。
                Class clazz = dex.loadClassBinaryName(name, definingContext, suppressed);
                if (clazz != null) {
                    return clazz;
                }
            }
        }
        //..
        return null;
    }

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網頁標題:Android類加載模式-創新互聯
文章URL:http://www.yuzhuanjia.cn/article/doeogs.html
主站蜘蛛池模板: 91模特国| 日韩av无码久久永久10 | 高清av在线短片毛片 | av视频一本无码视频 | 午夜欧美精品久久久久久久 | 午夜DV内射一区二区 | 成年人在线 | 午夜性色福利影院 | 91国偷自产一区二区三区换脸 | 99久久精品免费看国产一区二区三区 | 91精品国产麻豆 | 成人中文字幕在线 | 日韩av东京社区男人的天堂 | 91视频免费看无限看下载 | 午夜国内自拍视频 | 午夜在线视频91精品 | 午夜看一级特黄a | 丰满熟妇乱又伦在线无码视频 | av怡红院一区二区三区 | 丰满少妇内射一区 | 波多野吉衣免费一区 | 91大神久久亚洲 | 91久久精品国产一区 | 91Tims| 国产av一区二区三区幸福宝 | av老司机 | 国产成a人片在线观看视频99 | 韩国午夜福利电影院 | 天美影视电影网 | av无码专区亚洲avl在线观看 | 91精品国产亚一区二区三区 | 高清流畅免费无码毛片av | 午夜无码人妻喷潮 | 国产av级不卡毛片在线观看 | 9191国语精品高清在线 | 午夜国产精品水蜜桃视频人 | 一区二区三区免费在线观看 | 91精品国产色综合久 | 91在线精品老司机免费播放 | 成人高清视频 | 91精品欧美激情在线播放 |