Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gradle and Android Studio
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Fede
September 25, 2014
Programming
0
130
Gradle and Android Studio
Info and tips of Gradle and Android Studio
Fede
September 25, 2014
Tweet
Share
More Decks by Fede
See All by Fede
Spark Streaming Tips for Devs & Ops
fedefernandez
0
94
Scala on Android - The current state of affairs
fedefernandez
0
44
Functional Views on Android
fedefernandez
0
600
Other Decks in Programming
See All in Programming
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
AtCoder Conference 2025
shindannin
0
1.1k
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
Architectural Extensions
denyspoltorak
0
280
CSC307 Lecture 05
javiergs
PRO
0
500
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
190
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
160
Grafana:建立系統全知視角的捷徑
blueswen
0
330
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
950
CSC307 Lecture 08
javiergs
PRO
0
670
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
0
54
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Designing for Timeless Needs
cassininazir
0
130
KATA
mclloyd
PRO
34
15k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
49
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Navigating Team Friction
lara
192
16k
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Being A Developer After 40
akosma
91
590k
Un-Boring Meetings
codingconduct
0
200
Crafting Experiences
bethany
1
48
Transcript
Info and tips for Gradle and Android Studio
Google Plus plus.google.com/+FedeFdez Twitter @FedeProEx Web projectsexception.com
Eclipse / Ant Maven Gradle Android Build System
None
Single Build System Build from command line or your IDE
Default folder structure Tasks for build, test, install,...
Simplify AndroidManifest Version code and version name Package identifier Minimum
and target sdk Placeholder support
Build Types Debug, release and your owns Add application id
and name suffixes Signing Configurations Running proguard
Dependency Management Local packages Build type specific dependency No need
to distribute the dependencies Multi project support
None
1 android { 2 compileSdkVersion 19 3 buildToolsVersion '19.0.0' 4
5 defaultConfig { 6 applicationId 'com.example.app' 7 versionCode 12 8 versionName '2.0' 9 minSdkVersion 16 11 targetSdkVersion 16 12 } 13 } Simplify Manifest
1 android { 2 buildTypes { 3 debug { 4
applicationIdSuffix '.debug' 5 versionNameSuffix '-debug' 6 } 7 release { 8 runProguard true 9 proguardFiles 'file1.pro', 'file2.pro' 10 signingConfig signingConfigs.mySignConfig 11 } 12 } 13 } Build Types
1 android { 2 signingConfigs { 3 mySignConfig { 4
storeFile = file(project.property('file')) 5 storePassword = project.property('password') 6 keyAlias = project.property('keyAlias') 7 keyPassword = project.property('keyPassword') 8 // Command line or environment variable 9 // System.console().readLine("\n\$ Password: ") 10 // System.getenv("KEYSTORE") 11 } 12 } 13 } Signing Config
1 dependencies { 2 // All jar in libs folder
3 compile fileTree(dir: 'libs', include: ['*.jar']) 4 // Dependency from repository 5 compile 'com.android.support:support-v4:20.0.0' 6 // Library project in same folder 7 compile project(':library-project') 8 // Dependency for release build 9 releaseCompile 'com.google.code.gson:gson:2.3' 10 } Dependencies
None
Flavors Application variants Same type as the android.defaultConfig Flavor specific
dependencies Build Type + Product Flavor = Build Variant
Multi-Flavors Distinct dimensions Flavors are assigned to a specific dimension
Combine dimensions to create de app
1 flavorDimensions 'type', 'store' 2 productFlavors { 3 full {
4 flavorDimension 'type' 5 } 6 lite { 7 flavorDimension 'type' 8 } 9 amazon { 10 flavorDimension 'store' 11 } 12 play { 13 flavorDimension 'store' 14 } Flavors fullAmazonDebug fullAmazonRelease liteAmazonDebug liteAmazonRelease fullPlayDebug fullPlayRelease litePlayDebug litePlayRelease
Source Sets Build Types and Product Flavors have their own
sourceSet src/main, src/<buildType1>, src/<flavor1>,... Source code (src/*/java) generate a single output Manifests are all merged Resources using priority: BuildType > Flavor > Main
1 <manifest> 2 <application> 3 <activity> 4 <!-- --> 5
</activity> 6 </application> 7 </manifest> Manifest Merge 1 <manifest> 2 <uses-permission> 3 </manifest> 1 <manifest> 2 <uses-permission> 3 <application> 4 <activity> 5 <!-- --> 6 </activity> 7 </application> 8 </manifest> 1 2 3
Gradle + Android Studio
Android Studio vs Eclipse AS Eclipse Build system Gradle Ant
Maven-based build dependencies Yes No Build variants and multiple-APK generation Yes No Advanced Android code completion and refactoring Yes No Graphical layout editor Yes Yes APK signing and keystore management Yes Yes NDK support Soon Yes
Some Features An IDE built for Android Gradle integration IntelliJ
IDEA is the base for Android Studio Preview resources (drawables, strings,...) Advanced layout editor (includes, xml drawables) Templates
None
None
None
None
None
None
None
Resources tools.android.com/tech-docs/new-build-system/user-guide plus.google.com/+PhilippeBreault github.com/keyboardsurfer/idea-live-templates stackoverflow.com/questions/tagged/gradle+android
None