1. 程式人生 > >Android動態載入APK問題整理

Android動態載入APK問題整理

這兩天一直研究在APK不安裝情況下,動態載入APK程式碼和資源,整理下問題點,以備後用。

首先可以肯定的是,載入資源是沒有問題的,在此也不做描述。主要記錄下動態載入程式碼的注意點:

1.載入APK程式碼用DexClassLoader而不是PathClassLoader

2.注意動態切換AssetManager, Resources, Theme

3.“Class ref in pre-verified class resolved to unexpected implementation”的問題解決

感謝以下參考資料:

第三篇幫助很大,如有什麼問題,郵件聯絡,我可以提供原始碼;

[email protected]

相關推薦

Android動態載入APK問題整理

這兩天一直研究在APK不安裝情況下,動態載入APK程式碼和資源,整理下問題點,以備後用。 首先可以肯定的是,載入資源是沒有問題的,在此也不做描述。主要記錄下動態載入程式碼的注意點: 1.載入APK程式碼用DexClassLoader而不是PathClassLoader 2.

Android動態載入APK外掛類

前言 外掛化開發目前是非常熱門的Android技術,它主要通過將不同的業務物件封裝到外掛中,這樣不同的業務可以獨立開發和除錯,提高專案的開發效率。APK檔案就是常見的外掛檔案格式,它包含了Android應用常見的資源和程式碼,不過由於外掛沒有被安裝到系統中還需

實現Android 動態載入APK(Fragment or Activity實現)

最近由於專案太大了,導致編譯通不過(Android對一個應用中的方法個數貌似有限制),所以一直琢磨著能否將某些模組的APK不用安裝,動態載入,通過在網上查詢資料和網友的幫助,終於實現了APK的動態載入,網路上介紹APK動態載入的文章非常多,但是我覺得寫得非常好的就是這位大牛

Android動態載入jar、apk的實現

        前段時間到阿里巴巴參加支付寶技術分享沙龍,看到支付寶在Android使用外掛化的技術,挺好奇的。正好這幾天看到了農民伯伯的相關文章,因此簡單整理了下,有什麼錯誤希望大神指正。       核心類      1.1      DexClassLoader類   

Android動態載入——載入已安裝APK中的類

public class TestAActivity extends Activity { /** TestB包名 */ private static final String PACKAGE_TEST_B = "com.nmbb.b"; @Override publ

Android動態載入(一)--載入已經安裝的APK

 最近在研究Android動態載入APK技術,偶有小得,共享一下,歡迎交流。 首先是Android 動態載入已安裝的APK 截圖: 被呼叫工程TestB: 其工程已添加了字串、顏色和圖片資源,這裡不寫了,讀者可自行新增。 [java] view plaincop

Android 動態載入sd卡里面so庫

有些so檔案太大,可以從手機記憶體或者sd卡里面拷貝到執行的應用程式裡面。介面都是之前打包在裡面了。還可以做so更新,就是把之前拷貝進行刪除,然後進行不重新打包apk,進行重新拷貝進去。 1,封裝好的類 package com.rtcmdemo.until; impor

Android動態載入基礎 ClassLoader工作機制

基本資訊 類載入器ClassLoader 早期使用過Eclipse等Java編寫的軟體的同學可能比較熟悉,Eclipse可以載入許多第三方的外掛(或者叫擴充套件),這就是動態載入。這些外掛大多是一些Jar包,而使用外掛其實就是動態載入Jar包裡的Class進行工作。這其實

Android動態載入輪播圖BannerView

輪播圖在每個app中扮演著一個點綴的角色,在獨立做了三款app後都有這個需求,所以我決定把它單獨抽出來。以後只需copy,然後再根據需求改一下即可。 /** * 載入網路輪播圖 *@author jiangrongtao * *csdn

Android動態載入Activity原理

activity的啟動流程 載入一個Activity肯定不會像載入一般的類那樣,因為activity作為系統的元件有自己的生命週期,有系統的很多回調控制,所以自定義一個DexClassLoader類載入器來載入外掛中的Activity肯定是不可以的。 首先不得不瞭解一下ac

Android動態載入入坑指南

private static Element[] makeDexElements(List<File> files, File optimizedDirectory, List<IOException&g

Android動態載入Jar

定義介面, 把實現介面的部分打包成jar 在 將打包好的jar拷貝到SDK安裝目錄android-sdk-windows\platform-tools下,DOS進入這個目錄,執行命名: dx --dex --output=test.jar update.jar 核心載入

Android 動態載入佈局檔案

本文轉自:原文地址 Android的基本UI介面一般都是在xml檔案中定義好,然後通過activity的setContentView來顯示在介面上,這是Android UI的最簡單的構建方式。其實,為了實現更加複雜和更加靈活的UI介面,往往需要動態生成UI介面,甚至根

Android 動態載入二維碼檢視生成快照

1.需求背景 需要實現一個動態載入但不顯示出來的檢視,且該檢視上有個動態生成的二維碼,最後用其去生成一張快照(也就是圖片)。 (常見這種情況是來源於“圖片分享”的功能需求,與普通圖片分享不同在於,該快照圖片是動態載入不顯示的。) 2.需求功能拆解 動態二維碼的實現動態檢

Android系統載入Apk檔案的時機和流程分析(1)--Android 4.4.4 r1的原始碼

Android系統在啟動時安裝應用程式的過程,這些應用程式安裝好之後,還需要有一個Home應用程式來負責把它們在桌面上展示出來,在Android系統中,這個預設的Home應用程式就是Launcher了。Android系統的Home應用程式Launcher是由Activit

android 動態載入sd卡的jar檔案

下面以一個例子列出Android程式執行時動態載入sd卡jar包的步驟: 1. 首先要準備好jar包。 本例中要對com.test.dynamic包進行打包,com.test.dynamic包下面有一個MyClass類.程式碼如下: package com.test.dynamic;   impo

android動態載入外部類

基本資訊  我們很早開始就在Android專案中採用了動態載入技術,主要目的是為了達到讓使用者不用重新安裝APK就能升級應用的功能,這樣一來不但可以大大提高應用新版本的覆蓋率,也減少了伺服器對舊版本介面相容的壓力,同時如果也可以快速修復一些線上的BUG。  這種技術並

Android動態載入Dex過程

 一、綜述       Android使用Dalvik虛擬機器載入可執行程式,所以不能直接載入基於class的jar,而是需要將class轉化為dex位元組碼,從而執行程式碼。優化後的位元組碼檔案可以存在一個*.jar中,只要其內部存放的是*.dex即可使用。       將

Android動態載入jar檔案

這裡用個例子來演示,具體流程是用Android Studio建一個Android專案並編寫相應程式碼,然後用Eclipse編寫一個java程式碼並打成jar包,再轉換成Android能識別的dexjar包,最後先安裝好APP,然後把jar包放到APP目錄下,ap

【收藏】Android動態載入classLoader工作機制 & QQ空間熱補丁hotFix原理

收藏一下             Android動態載入classLoader工作機制:https://segmentfault.com/a/1190000004062880 &nb