天天看點

超簡單一行代碼實作應用雙開,仿照微信雙開、QQ雙開等實作app應用雙開,即采用Android插件化開發在免安裝情況下加載使用原生app

超簡單一行代碼實作應用雙開,仿照微信雙開、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的檔案路徑就可以了。

項目用到的權限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>      

使用指南

繼續閱讀