从网上看了许多资料。并且发现好多博客写的不太准确。只好自己总结一下了。
一、开发SDK
一般开发SDK都是基于自己已写的已写项目制作的。
首先更改项目中gradle的配置。apply plugin: 'com.android.application'改为apply plugin: 'com.android.library'。
不出意外的话就可以构建成功了。网上说要依赖中要加入
compile project(':mylibrary')
我加入这个反而报错了。不知道原因。
然后重新build一下项目,在build/outputs/aar中就得到了aar包(jar包在/build/intermediates/bundles/debug(release)/classes.jar中)
要注意的一些坑,虽然打包成功了,但是不能用啊。。。为什么呢,
(1)manifest中 原先项目中的启动类,如<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>这样集成后就有两个启动类了。。。所以要修改这里。(2)application中android:icon这个属性会和打包sdk冲突。所以,要去掉。好了问题差不多解决了。但是你想没想,怎么隐藏自己的类和一些资源呢?(因为类和资源都是默认公开的),哈哈,继续听。
怎么隐藏类:这个国内还是有一点资料的。就是用混淆文件。buildTypes { release { minifyEnabled true proguardFiles 'proguard-android.txt' } }这样就可以了。至于怎么写混淆文件,这方面资料很多。不在细说了。
接下来就是使用的问题了。怎么隐藏资源:从https://developer.android.com/studio/projects/android-library.html#PrivateResources官网上我查到了一些资料。具体翻译过来就 是在res/vaules下新建一个文件public.xml。例如:<resources> <public name="mylib_app_name" type="string"/> <public name="mylib_public_string" type="string"/> </resources>如果都不想公开的话就用<public />就可以了。是不是很方便。二、使用SDK aar包首先你要配置gradle 像这样repositories { flatDir { dirs 'libs' } }构建中加入Flat Directory仓库。这样系统就会从lib目录下搜索依赖。
然后依赖你的aar包。compile(name: 'app-debug', ext: 'aar'),然后就去使用aar吧!