編輯:關於Android編程
最近項目在做一個sdk,供別的開發者使用,所以要求導出jar包。
與eclipse不同,android studio 1.0 沒提供導出jar包的圖形界面。需要結合gradle來生成jar包。
首先 需要設置module應用的gradle插件為 library 代碼長這樣:
apply plugin: 'com.android.library'
這樣,build的時候,android studio 1.0會在 module目錄的build/intermediates/bundles/release/ 子目錄(這個目錄以後版本可能會變)裡生成一個名為classes的jar包。
如果你的項目沒用到assets等資源文件,那你直接拷貝出去就可以用了。
如果想拷貝到outputs目錄的話,在module的build.gradle裡添加以下代碼:
task clearJar(type: Delete) {
delete 'build/outputs/yourname.jar'
}
task makeJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('build/outputs/')
include('classes.jar')
rename ('classes.jar', 'yourname.jar')
}
makeJar.dependsOn(clearJar, build)
如果你和我一樣,還需要把assets目錄打包到jar包的話,請繼續往下看。
我用了一個非主流的方式打包assets,應該沒什麼後遺症,咱們江湖兒女都懂的,hack一下更健康。
其實也沒啥神秘的,也不知道算不算hack,就是利用文件依賴來打包assets。代碼長這樣:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
provided files('src/main/assets')
compile 'com.android.support:appcompat-v7:21.0.3'
}
關鍵是第三行代碼。還有一點一定要注意,需要在assets新建一個名為assets的目錄,在這個子目錄裡放置你需要的文件。這樣才可以哦。
還沒完,不知道啥原因,只有minifyEnabled設置為 true才能把assets打包進去。沒有去深究,反正我也需要混淆下代碼。
好了,android studio 使用gradle 導出jar包,並打包assets目錄 ,我說明白了,對吧。
另附 proguard配置:
-libraryjars 'C:Softandroidadtsdkplatformsandroid-19android.jar'
-optimizations !code/simplification/arithmetic
-allowaccessmodification
-repackageclasses ''
-keepattributes *Annotation*
-dontpreverify
-dontwarn android.support.**
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.view.View {
public (android.content.Context);
public (android.content.Context,android.util.AttributeSet);
public (android.content.Context,android.util.AttributeSet,int);
public void set*(...);
}
-keepclasseswithmembers class * {
public (android.content.Context,android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public (android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers class * extends android.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}
-keepclassmembers class * extends android.os.Parcelable {
static ** CREATOR;
}
-keepclassmembers class **.R$* {
public static ;
}
-keepclassmembers class * {
@android.webkit.JavascriptInterface
;
}
這篇文章篇幅較長,可以使用版權聲明下面的目錄,找到感興趣的進行閱讀目錄 3.1 Android Studio使用初探 Project面板 Stucture面板 Andro
本文實例講述了Android TextView中文字通過SpannableString設置屬性的方法。分享給大家供大家參考,具體如下:在Android中,TextView
一貫作風,先看效果圖,再實現 編寫自定義屬性文件atts.xml,自定義屬性中涉及到的屬性有左右兩邊的button的背景圖,中間標題的內容,字體大小,字體顏色。
認識ReactReact是一個用於構建用戶界面的JavaScript庫。 React主要用於構建UI,很多人認為React是MVC中的V,即視圖。 React起源於Fac