兩種android app調用jar的方法

Android將Activity打成jar包供第三方調用(解決資源文件不能打包的問題)

Android 打aar包

前段時間需要做一個sdk項目,正苦悶用什麼打包方式,要是使用jar打包,jar只能打包class文件,要想把資源文件打包進去

比較麻煩的意見事情,界面不多的話可以使用反射調用,把資源文件都通過這個反射的R引用出來。

String packageName = context.getPackageName();
      Class r = null;
      int id = 0;
      try {
          r = Class.forName(packageName + .R);

          Class[] classes = r.getClasses();
          Class desireClass = null;

          for (int i = 0; i < classes.length; ++i) {
              if (classes[i].getName().split(\$)[1].equals(className)) {
                  desireClass = classes[i];
                  break;
              }
          }

          if (desireClass != null)
              id = desireClass.getField(name).getInt(desireClass);

現在就沒有那麼麻煩了,Android studio給我們提供一種更簡便的方式,可以同時把class和res文件打包進去,現在的support v7 和gson-2.21就是aar打包方式

打包方法:

我們先把想要打包成sdk的項目做成Android libraries B不要建成Android project 然後我們建立一個新的Android project A 去調用寫好的libraries B
運行後,studio就自動把我們的librarys B打包成aar包了,這就是我們想要的sdk了(路徑:libraries Buildoutputsaar)

使用方法:
1、把打好的aar包拷貝到需要引用的Android工程libs目錄下
2、修改Android studio的gradle設置

epositories{
   flatDir{
        dirs 'libs'
   }
}

dependencies {
//    compile fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    compile 'com.android.support:appcompat-v7:19.+'
    compile project(name':app2',ext:'aar')//導入app2.aar並執行 
}

看看external lib下是不多了一個app2 (包含一個jar和一個res) 就表示成功了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章