Android外掛程式化(使用Small架構)

來源:互聯網
上載者:User

Android外掛程式化(使用Small架構)
Android外掛程式化(使用Small架構)架構源碼1. Create Project

File->New->New Project...

1.1 Configure your new project

假設宿主包名為com.example.mysmall

  1. 設定Application name為MySmall
  2. 修改Company Domain為com.example.mysmall

    這步是個技巧,在Step3建立Module時將會自動帶上該首碼

  3. 修正Package name為com.example.mysmall

    1.2 Add an activity to mobile

    這步推薦使用Fullscreen Activity,作為啟動介面再好不過。 在配置Activity介面,建議把Activity Name改為LaunchActivity(使名符其實)。

    2. Configure Small

    修改Project的build.gradle

    2.1 加入Small編譯庫
    buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:1.3.0'        classpath 'net.wequick.tools.build:gradle-small:0.1.1'    }}...apply plugin: 'net.wequick.small'
2.2 配置Small DSL (可選)

目前只有一個屬性aarVersion,表示Small aar的程式碼程式庫版本。如果沒有設定,預設為gradle-small的版本。

small {    aarVersion = '0.1.2'}

最新的版本號碼可以在Bintray上看到。

3. Create Module

File->New->Module來建立外掛程式模組,需要滿足:

  1. 模組名形如:app.*,lib.*或者web.*
  2. 包名包含:.app.,.lib.或者.web.

    為什麼要這樣?因為Small會根據包名對外掛程式進行歸類,特殊的網域名稱空間如:“.app.” 會讓這變得容易。

    lib.*模組選擇Android Library,其他模組選擇Phone & Tablet Module。

    建立一個外掛程式模組,比如app.main

    1. 修改Application/Library name為App.main
    2. 修改Package name為com.example.mysmall.app.main

      4. Configure UI route

      右鍵app模組->New->Folder->Assets Folder,建立assets目錄,

      右鍵assets目錄->New->File,建立bundles.json檔案,加入:

      {  "version": "1.0.0",  "bundles": [    {      "uri": "main",      "pkg": "com.example.mysmall.app.main"    }  ]}
      5. Setup Small5.1 配置簽名

      切換到Project分類樹,右鍵MySmall,建立sign目錄,添加release.jks簽名檔案。

      app模組的build.gradle中增加簽名配置(密碼改成自己的):

      signingConfigs {    release {        storeFile file('../sign/release.jks')        storePassword "5mall@ndro!d"        keyAlias "small"        keyPassword "5mall@ndro!d"    }}buildTypes {    release {        signingConfig signingConfigs.release    }}
      5.2 配置基礎依賴

      app模組增加共用的依賴庫,比如:

      compile 'com.android.support:design:23.1.1'
      5.3 載入外掛程式

      app模組的LaunchActivity重載onStart方法:

      @Overrideprotected void onStart() {    super.onStart();    Small.setBaseUri("http://example.com/");    Small.setUp(this, new net.wequick.small.Bundle.OnLoadListener() {        @Override        public void onStart(int bundleCount, int upgradeBundlesCount, long upgradeBundlesSize) {        }        @Override        public void onProgress(int bundleIndex, String bundleName, long loadedSize, long bundleSize) {        }        @Override        public void onComplete(Boolean success) {            Small.openUri("main", LaunchActivity.this);        }    });}
      6. Compile Small
      1. Build libraries (準備基礎庫)

        [./]gradlew buildLib -q (-q是安靜模式,可以讓輸出更好看,也可以不加)

      2. Build bundles (打包所有組件)

        [./]gradlew buildBundle -q (-q是安靜模式,可以讓輸出更好看,也可以不加)

        這兩步,如果你喜歡,也可以在Gradle任務導航裡運行

        單獨編譯一個組件可以使用 [./]gradlew -p web.about assembleRelease
        或者

        7. Run Small

        在工具列,選擇app模組,運行。

        .目錄結構異常處理1、上面是給出的步驟 但是需要注意的是建立外掛程式模組的時候比如輸入的是app.main 這個時候包名需要注意修改為類似com.example.small.app.main 而不是com.example.small.appmain 這樣運行會出問題。2、如果編譯出現問題 需要先執行./gradlew cleanLib

         

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.