17. 17
Resources
Lint will warn you!
android {
resourcePrefix 'mylib_'
}
Use resource prefix for library resources
18. 18
Obfuscation. DON’Ts for library
-repackageclasses ‘’
-allowaccessmodification
// hidden -> public
a.class
b.class
…
a.class
b.class
…
first.jar second.jar
error:
duplicate class
19. 19
Obfuscation. Rules for users
Will be packaged into aar
defaultConfig {
consumerProguardFiles ‘pro-consumer.txt’
}
20. 20
Dependencies.
Stable vs dynamic versions
Stable versions give stable builds
dependencies {
// 1.6.0 only
compile ‘com.squareup.okhttp:okhttp:1.6.0’
// Latest version
compile ‘com.squareup.okhttp:okhttp:+’
}
Dynamic versions do not require redeploy
Use stable versions for library dependencies
21. 21
Dependencies. Maven only!
What’s wrong with
local jars?
libs/
lib-1.0.jar
libs/
lib-1.0.jar
first.aar second.aar
In extreme cases –
use jarjar tool error:
duplicate class
22. 22
Manifest. Static values
Will be copies into app’s manifest file ‘as is’.
<uses-permission android:name="android.permission.INTERNET"
/>
<application>
<activity android:name="com.my.app.SomeActivity”/>
</application>
Include required values only!