- SDK“坑不坑”?
- SDK“難不難”?
- 如何封裝用戶接口?
- Android Studio 打包混淆aar
1 . SDK“坑不坑”?
沒有接觸過SDK研發的人可能不覺得,SDK研發費時費力,並且沒有什么成就感。你寫的做的,最終結果你並不能看到。最重要的是,一個SDK完成后,你會感覺到居然什么都沒有得到?(有點小誇大哦)當對於普通的APK研發,SDK還是比較坑的。
2 . SDK“難不難”?
在eclipse時代,怎么加載類?怎么加載資源?怎么讓開發者更快更簡單的接入?還是比較困難的。
3 .如何封裝用戶接口?
以上兩點都是在扯。言歸正傳,如何讓自己的SDK更安全?讓自己的邏輯對用戶完全透明?
* 利用好混淆
* 建造者模式
先看下我SDKdemo的目錄結構

總體的架構采用MVP。最近超喜歡用這種模式,比MVC更好理解,解耦性更好,就是接口寫的多了點。重點看admin包。這個包的主要功能是暴露給用戶的。也就是說SDK中一切提供給用戶的API接口都寫在這個包中。當混淆時候只忽略這一個包即可。建造者模式構建用戶接口,優缺點不必多說。唯一重點想提的一個小細節。
@Override public void GoToActvity(Context context) { if (Constant.sdkInstance.getUserAppName() == null) throw new IllegalArgumentException("UserAppName can not be null"); if (Constant.sdkInstance.getUserChannel() == null) throw new IllegalArgumentException("UserChannel can not be null"); if (Constant.sdkInstance.getUserKey()==null) throw new IllegalArgumentException("UserKey can not be null"); Intent intent = new Intent(context, SdkActivity.class); context.startActivity(intent); }
像這種異常一定要跑出來讓接入者看到,會讓你省去很大麻煩。demo我會在最后貼出下載地址。
4.Android Studio 打包混淆aar
首先配置混淆,在你的SDK項目build.gradle中配置,如圖

其次配置你的proguard-rules.pro文件,這里提供一個模版哦,http://www.jianshu.com/p/f3455ecaa56e 非常不錯。然后就可以生成aar包了,第一你可以運行下項目(這種太low)。或者你可以在控制台下輸入gradlew如圖。

最終你的aar會生成在這里。。。上圖

對了,如何使用aar那?

具體代碼詳情請看github 轉載:David_DYK