編輯:關於Android編程
前段時間需要做一個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設置
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並執行
}
Android關於ListView的優化問題
今天在我哥們的帶領下,學習了一些關於ListView的優化方案。現在提出來和大家分享下.... 第一點: 在Listview中數據加載時經常用到的ViewHolder,我
Android進階之事件攔截處理機制
1 Android控件架構1 簡單的總結(1)父View優先攔截當前事件,攔截不成功就讓子View對當前事件進行攔截。(2)如果攔截成功的話,就會沿著子view到父Vie
布局與控件(六)-TableLayout和VideoView
第7節 TableLayoutTableLayout顧名思義,就是像表格一樣的布局。它是LinearLayout的子類,所以擁有TableLayout的所有屬性。7.1
Android開發架構模式MVP的簡單思考
什麼是MVP?View層主要是用於展示數據並對用戶行為做出反饋。在Android平台上,他可以對應為Activity, Fragment,View