Android 打aar包,androidaar包
前段時間需要做一個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 B\build\outputs\aar\)
使用方法:
1、把打好的aar包拷貝到需要引用的Android工程libs目錄下
2、修改Android studio的gradle設定
repositories{ 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) 就表示成功了