超簡單一行代碼實作應用雙開,仿照微信雙開、QQ雙開等實作app應用雙開,即采用Android插件化開發在免安裝情況下加載使用原生app
LoadApp
仿照微信雙開、QQ雙開等實作app應用雙開,即在免安裝情況下加載使用原生app,采用仿支付寶加載應用和微信加載小程式的功能特色,實作應用免安裝情況下運作。
本項目主要采用插件化開發技術,在一個容器app中,把其它的app以檔案流的形式進行加載,利用反射等方法獲得相關的程式入口,進行加載和使用。
加載app的方法都封裝了需要參數,根據方法名結合自身需要傳輸的參數即可了解需要使用的方法,隻需要一行代碼進行調用和實作。
官網位址
其它資訊
源碼位址
最新版本
版本号:
使用自行替換下面的版本号,以獲得最新版本。
使用體驗
1、首先下載下傳容器app,也是主app,這個app可以獨立運作,也就是普通的app應用程式,需要下載下傳并安裝,下載下傳位址:
https://github.com/YouAreOnlyOne/LoadApp/blob/master/source/loadapp.apk。
安裝之後,直接運作,但是隻有簡單的HelloWorld界面,點選“加載APP”也不會有什麼反應,不能夠跳轉到其它的app,會提示“檔案是否存在”。
2、下載下傳另一個需要的app,這個app也可以獨立安裝,也是一個普通的app應用程式,可以安裝也可以不安裝(實作雙開效果需要安裝),但是要把安裝包(apk檔案)放到手機存儲的根目錄下面,下載下傳位址:
https://github.com/YouAreOnlyOne/LoadApp/blob/master/source/develop.apk 。
此時,重新進入主app,點選“加載APP”,就會把這個這一步下載下傳的app加載進去。實作免安裝使用。我們我們加載的這個app也是一個獨立app,可以進行安裝,安裝之後就會達到容器裡面加載了這個app,本身這個app又可以安裝使用,達到應用雙開的效果。
使用方法
這裡分别介紹在不同項目環境中,如何引用對該庫的依賴。
Android中使用:
方法一:
1.第一步,在項目的build.gradle下配置,注意是項目的build.gradle:
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
2.第二步,在app的build.gradle下添加如下依賴:
dependencies {
...
implementation 'com.github.YouAreOnlyOne:LoadApp:版本号'
...
}
方法二:
1.第一步,下載下傳依賴的包:
https://github.com/YouAreOnlyOne/LoadApp/blob/master/source/standard-release.aar 。
https://github.com/YouAreOnlyOne/LoadApp/blob/master/source/develop-release.aar 。
https://github.com/YouAreOnlyOne/LoadApp/blob/master/source/app-release.aar 。
并放到項目的 libs 目錄下面。
2.第二步,在app的build.gradle下添加如下依賴,注意,兩個依賴是平級關系:
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
...
compile(name:'standard-release', ext:'aar')
compile(name:'develop-release', ext:'aar')
compile(name:'app-release', ext:'aar')
...
}
使用示例:
建立容器APP
1、Android環境中随便建立一個普通Android項目(注意添加上面的依賴),在任何一個Activity中,調用下面一行代碼即可:
LoadApp.loadApp(this,new File("app檔案的路徑"));
建立其它APP
1、Android環境中随便建立一個普通Android項目(注意添加上面的依賴),建立一個Activity,這個Activity需要繼承架構的BaseActivity,該Activity中的所有的上下文環境的this全部用that代替即可,其它沒有任何要求,跟普通app開發完全一樣。例如下面簡單的demo:
public class MainActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
that.findViewById(R.id.textView).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(that,"點選事件成功!",Toast.LENGTH_LONG).show();
Intent intent=new Intent(that,SecondActivity.class);
startActivity(intent);
}
});
}
}
2、編譯該應用程式,生成apk。把生成的apk放到手機存儲卡裡面,或者伺服器上面。
3、上面容器APP中,可以讀取手機存儲卡裡面的app檔案,也可以從伺服器先下載下傳到本地,然後再讀取。總之隻要活得需要加載的APP的檔案路徑就可以了。
項目用到的權限
在manifest檔案中添加通路的權限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
使用指南
更新中……
相關介紹
OkHttp 、Retrofit 、Volley 、RxJava、Novate在Android中Web網絡請求一行代碼解決。
https://blog.csdn.net/u014374009/article/details/82933127
一行代碼實作Ftp檔案上傳、檔案下載下傳、檔案删除和進度監聽的工具類的使用。
https://blog.csdn.net/u014374009/article/details/82944107
一行代碼解決AndFix熱修複和熱跟更新問題,內建了阿裡的開源庫,修複程式的缺陷bug漏洞和功能頁面等.
https://blog.csdn.net/u014374009/article/details/83052178
其它資訊
1.項目還有很多不完善的地方,歡迎大家指導。
2.項目持續更新開源,有興趣加入項目或者跟随項目的夥伴,可以郵件聯系!
3.關注或者喜歡或者嘗試使用或者感興趣的夥伴可以,點選 ~ follow、fork、star ~ 。
作者郵箱
[email protected]