Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android插件化(使用Small框架)

Android插件化(使用Small框架)

編輯:關於android開發

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

    New small project

    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

      New small module

      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 Small

      5.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方法:

      @Override
      protected 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是安靜模式,可以讓輸出更好看,也可以不加)

        Build libraries

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

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

        Build bundles

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

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

        7. Run Small

        在工具欄Run small,選擇app模塊,運行。

        .目錄結構

        異常處理

        1、上面是給出的步驟 但是需要注意的是新建插件模塊的時候比如輸入的是app.main 這個時候包名需要注意修改為類似com.example.small.app.main 而不是com.example.small.appmain 這樣運行會出問題。 2、如果編譯出現問題 需要先執行./gradlew cleanLib

         

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved