SlideShare a Scribd company logo
Android develop Guideline
Index:
Getting start a project
- Environments
- IDE of Android development
- Android SDK version
- Java compiler
- Building system
- Emulator
- Coding Style
- Code Style
- Use Editorconfig
- Reformat code
- Workflow
- Scrum
- Importance of teamwork
- Mindsets
- Sharing
- References
Appendix:
Advance for a project
- Best practices
- Best resources
Training
Getting start a project
Environments
IDE of Android development
Android Studio
We use ​Android Studio​ as our IDE in Android team and should stay using the newest stable
version. How to Install Android studio please refer ​Android developer official site​. Following is
Android Studio configurations:
- Please turn on `Automatically check updates for ​Stable Channel​`
Config Lint
Android Level Lint
We should use the default Lint configuration (e.g., ​origami_lint_baseline.xml​) in the team.
(​https://developer.android.com/studio/write/lint.html​)
Java Level Lint:
Since it can be config in Lint configuration that supported by Android we should config manually.
Below those configs we should enable and make it as `warning` or `error` severity.
- Since efficiency issue please turn on `Private member access between outer and inner
classes` in `Editor > Inspections` as ​Error​ severity.
- Keeping updating
Live Template
Consider the consistent code style and avoid human error, and it can raise efficient while
coding. We should be used to it.
For example when writing a condition of checking null object (It is not default template).
Type `​ifn​` then the prompt will show up.
Select it then generate the code template and you should fill up the variables.
Hotkeys
Consider the consistent code style and avoid human error, and it can raise efficient while
coding. We should be used to it.
For example,
Lookup the parameter hint of a method.
Press `​Command (Ctrl for Windows) + P​` on a method calling.
Android SDK version
Minimal SDK version: `​Android 4.0.3 (Ice cream sandwich) API15`​ (but should higher than
dependencies).
Target SDK version: `​Always last version`​ (i.e., Android 7.0 (Nougat) API 24 so far)
Compile SDK version: `​Always last version`​ (i.e., Android 7.0 (Nougat) API 24 so far)
Ref:
https://medium.com/google-developers/picking-your-compilesdkversion-minsdkversion-targetsd
kversion-a098a0341ebd#.we0do6qn7
Java compiler
Please keep your Java Development Kit (JDK) version is ​latest version​.
(For Android Library)​ You should also keep the java compatibility as following configuration:
`Source Compatibility Version: ​Java Version 1.7​`
`Target Compatibility Version: ​Java Version 1.7​`
(For Android Application) ​Recommended using `Jack`: Since there some issues between
Oracle’s Java compiler and Android Java compiler. And there is no reason Java compiler does
optimize for Android. So in the team, we courage to use a Java compiler that able to optimize
for Android and help our app to get more efficiency.
Jack toolchain​:
>>> Jack is a new Android toolchain that compiles Java source into Android dex bytecode. It
replaces the previous Android toolchain, which consists of multiple tools, such as javac,
ProGuard, jarjar, and dx.
(link: ​https://source.android.com/source/jack.html​)
How to enable Jack:
https://developer.android.com/guide/platform/j8-jack.html#configuration
```
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
```
Building system
According to the default build system in Android Studio is ​Gradle​ and we need build variety of
app version for different purposes. You should use Gradle as your build system in Android
development. Please refer `​Config you Build​`.
Emulator
Two Android emulator.
- Official Android Emulator
- Genymotion Android Emulator​ - ​Personal Version in Free
Coding Style
Code Style
Refer to ​https://source.android.com/source/code-style.html
Above link that includes basic rule of coding and styling of your code. Just considering it as the
common Java coding style so we also follow the rules. Here is examples,
Comments​:
```
/**
* Constructs a new String by converting the specified array of
* bytes using the platform's default character encoding.
*/
public String(byte[] bytes) {
...
}
```
Define Fields in Standard Places​:
Define fields either at the top of the file or immediately before the methods that use them.
```
class Foo {
String bar;
void func() {
String fields;
}
}
```
Limit Variable Scope​:
```
// Instantiate class cl, which represents some sort of Set
Set s = null;
try {
s = (Set) cl.newInstance();
} catch(IllegalAccessException e) {
throw new IllegalArgumentException(cl + " not accessible");
} catch(InstantiationException e) {
throw new IllegalArgumentException(cl + " not instantiable");
}
// Exercise the set
s.addAll(Arrays.asList(args));
```
```
for (int i = 0; i < n; i++) {
doSomething(i);
}
```
Use Spaces for Indentation​:
We use ​four​ (`4`) space indents for blocks and never tabs. When in doubt, be consistent with
the surrounding code.
```
for (Iterator i = c.iterator(); i.hasNext(); ) {
doSomethingElse(i.next());
}
```
We use ​eight​ (`8`) space indents for line wraps, including function calls and assignments. For
example, this is correct:
```
Instrument i =
someLongExpression(that, wouldNotFit, on, one, line);
```
Follow Field Naming Conventions
- Non-public, non-static field names start with m. ​(TBD)
- Static field names start with s. ​(TBD)
- Other fields start with a lower case letter.
- Public static final fields (constants) are ALL_CAPS_WITH_UNDERSCORES.
```
public class MyClass {
public static final int SOME_CONSTANT = 42;
public int publicField;
private static MyClass sSingleton;
int mPackagePrivate;
private int mPrivate;
protected int mProtected;
}
```
Use Standard Brace Style
```
class MyClass {
int func() {
if (something) {
// ...
} else if (somethingElse) {
// ...
} else {
// ...
}
}
}
```
```
if (condition)
body(); ​// bad!
```
Limit Line Length
Each line of text in your code should be at most ​100​ characters long. While much discussion
has surrounded this rule, the decision remains that 100 characters is the maximum with the
following exceptions:
If a comment line contains an example command or a literal URL longer than ​100​ characters,
that line may be longer than ​100​ characters for ease of cut and paste.
Import lines can go over the limit because humans rarely see them (this also simplifies tool
writing).
Use TODO Comments
```
// TODO: Remove this code after the Url Table2 has been checked in.
```
Use Editorconfig
Android Studio (IntelliJ) enable ​Editorconfig​ plugin as default and it’s supported by most of
popular IDE. So we use Editorconfig as our code style configuration.
Reformat code
Keep often formatting your code with,
Workflow
Scrum
>>> Scrum is an iterative and incremental agile software development framework for managing
product development. It defines "a flexible, holistic product development strategy where a
development team works as a unit to reach a common goal", challenges assumptions of the
"traditional, sequential approach" to product development, and enables teams to self-organize
by encouraging physical co-location or close online collaboration of all team members, as well
as daily face-to-face communication among all team members and disciplines involved.
From ​Wikipedia
Basically we do each Scrum sprint in two weeks. First, to plan Sprint. Show the progress
everyday and review how the progress and determine release app or not in the second week.
For more detail please see the ​page​.
Software engineering development flow
Design -> Implement ->​ Test
Importance of teamwork
Teamwork Mindsets
- Communication with members anytime
- Use project tools, i.e., Gitlab. And control the source code.
- Before changing the code, you must discuss with your member who is original author of
the code if the member still be in here.
- Keep discussing if you have not get to understand.
- Keep finding root cause of an issue or a bug. Solve problem permanently is the most
important.
- Rather found error on compile time and not happend error on runtime.
- Found crashes or bugs on develop version (as early as possible) and not release
version.
Sharing
Keep sharing in Android team. If you found any interesting post about Android or you want to
recommend any helpful article you should feel free share it to other members. Or you can
schedule a meeting to give an introduction or explanation.
References
- Android Studio
- Picking your SDK version
- Java SE Download
- Jack
- Enable Java 8 Features and the Jack Toolchain
- Gradle
- Android Gradle
- Config your Build
- Android Emulator
- Genymotion
- Code Style for Contributors
- Editorconfig
Advance for a project
Best practices
- Best Practices for Performance
- Best practices in Android development
- Avoiding Memory Leak​ (​Android Memory Leak Pattern​)
Best resources
- Must have libraries
- Android Drawables
- Jake Wharton’s presentations
- Awesome Android UI
- Awesome Android Libraries
Training
Official Android Developer site is always the best ​training sites​. Followings are the must read
articles of learning developing with Android.
- Building Your First App
- Supporting Different Devices
- Managing the Activity Lifecycle
- Building a Dynamic UI with Fragments
- Best Practices for Performance

More Related Content

PPTX
[AnDevCon 2016] Mutation Testing for Android
PDF
Efficient JavaScript Unit Testing, JavaOne China 2013
PPTX
[ApacheCon 2016] Advanced Apache Cordova
PPTX
Post-mortem Debugging of Windows Applications
PPTX
Apache Cordova In Action
PDF
Living With Legacy Code
PDF
Declarative input validation with JSR 303 and ExtVal
PPTX
Migrating from MFC to Qt
[AnDevCon 2016] Mutation Testing for Android
Efficient JavaScript Unit Testing, JavaOne China 2013
[ApacheCon 2016] Advanced Apache Cordova
Post-mortem Debugging of Windows Applications
Apache Cordova In Action
Living With Legacy Code
Declarative input validation with JSR 303 and ExtVal
Migrating from MFC to Qt

What's hot (20)

PDF
3 WAYS TO TEST YOUR COLDFUSION API
PDF
Testing Legacy Rails Apps
PPTX
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
PDF
Foundations of Zend Framework
PPT
Introduction to Behavior Driven Development
PPT
Webinar on Google Android SDK
PPTX
Lecture java basics
PPTX
TDD and the Legacy Code Black Hole
ODP
Using Zend Framework 2 Book Presentation
PPTX
[Devoxx Morocco 2015] Apache Cordova In Action
PPTX
03 Beginning Android Application Development
PPT
Stopping the Rot - Putting Legacy C++ Under Test
PDF
Unit testing legacy code
PDF
Declarative Input Validation with JSR 303 and ExtVal
PDF
Java fx smart code econ
PPT
Behavior Driven Development by Example
PPTX
Mpl 1
PDF
JavaFX8 TestFX - CDI
PDF
Pharo Optimising JIT Internals
PPTX
Framework engineering JCO 2011
3 WAYS TO TEST YOUR COLDFUSION API
Testing Legacy Rails Apps
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
Foundations of Zend Framework
Introduction to Behavior Driven Development
Webinar on Google Android SDK
Lecture java basics
TDD and the Legacy Code Black Hole
Using Zend Framework 2 Book Presentation
[Devoxx Morocco 2015] Apache Cordova In Action
03 Beginning Android Application Development
Stopping the Rot - Putting Legacy C++ Under Test
Unit testing legacy code
Declarative Input Validation with JSR 303 and ExtVal
Java fx smart code econ
Behavior Driven Development by Example
Mpl 1
JavaFX8 TestFX - CDI
Pharo Optimising JIT Internals
Framework engineering JCO 2011
Ad

Similar to Android develop guideline (20)

PPTX
Advance Android Application Development
PPT
01 Introduction to programming
PPTX
C# Production Debugging Made Easy
PPTX
TypeScript - Silver Bullet for the Full-stack Developers
PPT
Introduction to Programming Lesson 01
ODP
Groovy In the Cloud
PPTX
Getting started with the NDK
PDF
3 WAYS TO TEST YOUR COLDFUSION API -
PPT
Salesforce Developer eXperience (SFDX)
PDF
How to Implement Micro Frontend Architecture using Angular Framework
PDF
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
PPT
Bdd Net Frameworks
PPTX
Angular4 getting started
PPT
Android Studio Software Installation steps in windows.
ODP
Android porting for dummies @droidconin 2011
PPTX
CSE 116 OOP Educational Materials of United International University
PPT
Introduction to Software Development
PDF
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
PPTX
JavaScript Core fundamentals - Learn JavaScript Here
PPTX
Creating a reasonable project boilerplate
Advance Android Application Development
01 Introduction to programming
C# Production Debugging Made Easy
TypeScript - Silver Bullet for the Full-stack Developers
Introduction to Programming Lesson 01
Groovy In the Cloud
Getting started with the NDK
3 WAYS TO TEST YOUR COLDFUSION API -
Salesforce Developer eXperience (SFDX)
How to Implement Micro Frontend Architecture using Angular Framework
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Bdd Net Frameworks
Angular4 getting started
Android Studio Software Installation steps in windows.
Android porting for dummies @droidconin 2011
CSE 116 OOP Educational Materials of United International University
Introduction to Software Development
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
JavaScript Core fundamentals - Learn JavaScript Here
Creating a reasonable project boilerplate
Ad

More from Kan-Han (John) Lu (20)

PDF
Dagger for android
PDF
Working process and git branch strategy
PDF
Deep neural network for youtube recommendations
PDF
Android testing part i
PDF
Cuda project paper
PDF
Twitter as a personalizable information service ii
PDF
Multimedia data minig and analytics sentiment analysis using social multimedia
PDF
Android IPC: Binder
PDF
ARM: Trusted Zone on Android
PDF
Android Training - Card Style
PDF
Android Training - View Pager
PDF
Android Training - Sliding Menu
PDF
Android Training - Pull to Refresh
PDF
Java: Exception Handling
PDF
Dynamic Proxy by Java
PDF
Code analyzer: FindBugs and PMD
PDF
Android UI System
PDF
Android Fragment
PDF
Android Training - Content Sharing
PDF
Android Training - Action Bar
Dagger for android
Working process and git branch strategy
Deep neural network for youtube recommendations
Android testing part i
Cuda project paper
Twitter as a personalizable information service ii
Multimedia data minig and analytics sentiment analysis using social multimedia
Android IPC: Binder
ARM: Trusted Zone on Android
Android Training - Card Style
Android Training - View Pager
Android Training - Sliding Menu
Android Training - Pull to Refresh
Java: Exception Handling
Dynamic Proxy by Java
Code analyzer: FindBugs and PMD
Android UI System
Android Fragment
Android Training - Content Sharing
Android Training - Action Bar

Recently uploaded (20)

PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPTX
Sustainable Sites - Green Building Construction
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PDF
Structs to JSON How Go Powers REST APIs.pdf
PDF
Well-logging-methods_new................
PDF
composite construction of structures.pdf
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
Construction Project Organization Group 2.pptx
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Model Code of Practice - Construction Work - 21102022 .pdf
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Operating System & Kernel Study Guide-1 - converted.pdf
Sustainable Sites - Green Building Construction
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Lecture Notes Electrical Wiring System Components
Strings in CPP - Strings in C++ are sequences of characters used to store and...
Structs to JSON How Go Powers REST APIs.pdf
Well-logging-methods_new................
composite construction of structures.pdf
Foundation to blockchain - A guide to Blockchain Tech
Construction Project Organization Group 2.pptx
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Lesson 3_Tessellation.pptx finite Mathematics
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx

Android develop guideline

  • 1. Android develop Guideline Index: Getting start a project - Environments - IDE of Android development - Android SDK version - Java compiler - Building system - Emulator - Coding Style - Code Style - Use Editorconfig - Reformat code - Workflow - Scrum - Importance of teamwork - Mindsets - Sharing - References Appendix: Advance for a project - Best practices - Best resources Training Getting start a project Environments
  • 2. IDE of Android development Android Studio We use ​Android Studio​ as our IDE in Android team and should stay using the newest stable version. How to Install Android studio please refer ​Android developer official site​. Following is Android Studio configurations: - Please turn on `Automatically check updates for ​Stable Channel​` Config Lint Android Level Lint We should use the default Lint configuration (e.g., ​origami_lint_baseline.xml​) in the team. (​https://developer.android.com/studio/write/lint.html​) Java Level Lint: Since it can be config in Lint configuration that supported by Android we should config manually. Below those configs we should enable and make it as `warning` or `error` severity. - Since efficiency issue please turn on `Private member access between outer and inner classes` in `Editor > Inspections` as ​Error​ severity.
  • 4. Live Template Consider the consistent code style and avoid human error, and it can raise efficient while coding. We should be used to it. For example when writing a condition of checking null object (It is not default template). Type `​ifn​` then the prompt will show up. Select it then generate the code template and you should fill up the variables.
  • 5. Hotkeys Consider the consistent code style and avoid human error, and it can raise efficient while coding. We should be used to it. For example, Lookup the parameter hint of a method. Press `​Command (Ctrl for Windows) + P​` on a method calling. Android SDK version Minimal SDK version: `​Android 4.0.3 (Ice cream sandwich) API15`​ (but should higher than dependencies). Target SDK version: `​Always last version`​ (i.e., Android 7.0 (Nougat) API 24 so far) Compile SDK version: `​Always last version`​ (i.e., Android 7.0 (Nougat) API 24 so far) Ref: https://medium.com/google-developers/picking-your-compilesdkversion-minsdkversion-targetsd kversion-a098a0341ebd#.we0do6qn7
  • 6. Java compiler Please keep your Java Development Kit (JDK) version is ​latest version​. (For Android Library)​ You should also keep the java compatibility as following configuration: `Source Compatibility Version: ​Java Version 1.7​` `Target Compatibility Version: ​Java Version 1.7​` (For Android Application) ​Recommended using `Jack`: Since there some issues between Oracle’s Java compiler and Android Java compiler. And there is no reason Java compiler does optimize for Android. So in the team, we courage to use a Java compiler that able to optimize for Android and help our app to get more efficiency. Jack toolchain​: >>> Jack is a new Android toolchain that compiles Java source into Android dex bytecode. It replaces the previous Android toolchain, which consists of multiple tools, such as javac, ProGuard, jarjar, and dx. (link: ​https://source.android.com/source/jack.html​) How to enable Jack: https://developer.android.com/guide/platform/j8-jack.html#configuration ``` android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } ```
  • 7. Building system According to the default build system in Android Studio is ​Gradle​ and we need build variety of app version for different purposes. You should use Gradle as your build system in Android development. Please refer `​Config you Build​`. Emulator Two Android emulator. - Official Android Emulator - Genymotion Android Emulator​ - ​Personal Version in Free Coding Style Code Style Refer to ​https://source.android.com/source/code-style.html Above link that includes basic rule of coding and styling of your code. Just considering it as the common Java coding style so we also follow the rules. Here is examples, Comments​: ``` /** * Constructs a new String by converting the specified array of * bytes using the platform's default character encoding. */ public String(byte[] bytes) { ... } ``` Define Fields in Standard Places​: Define fields either at the top of the file or immediately before the methods that use them. ``` class Foo { String bar; void func() { String fields; }
  • 8. } ``` Limit Variable Scope​: ``` // Instantiate class cl, which represents some sort of Set Set s = null; try { s = (Set) cl.newInstance(); } catch(IllegalAccessException e) { throw new IllegalArgumentException(cl + " not accessible"); } catch(InstantiationException e) { throw new IllegalArgumentException(cl + " not instantiable"); } // Exercise the set s.addAll(Arrays.asList(args)); ``` ``` for (int i = 0; i < n; i++) { doSomething(i); } ``` Use Spaces for Indentation​: We use ​four​ (`4`) space indents for blocks and never tabs. When in doubt, be consistent with the surrounding code. ``` for (Iterator i = c.iterator(); i.hasNext(); ) { doSomethingElse(i.next()); } ``` We use ​eight​ (`8`) space indents for line wraps, including function calls and assignments. For example, this is correct: ``` Instrument i = someLongExpression(that, wouldNotFit, on, one, line); ```
  • 9. Follow Field Naming Conventions - Non-public, non-static field names start with m. ​(TBD) - Static field names start with s. ​(TBD) - Other fields start with a lower case letter. - Public static final fields (constants) are ALL_CAPS_WITH_UNDERSCORES. ``` public class MyClass { public static final int SOME_CONSTANT = 42; public int publicField; private static MyClass sSingleton; int mPackagePrivate; private int mPrivate; protected int mProtected; } ``` Use Standard Brace Style ``` class MyClass { int func() { if (something) { // ... } else if (somethingElse) { // ... } else { // ... } } } ``` ``` if (condition) body(); ​// bad! ```
  • 10. Limit Line Length Each line of text in your code should be at most ​100​ characters long. While much discussion has surrounded this rule, the decision remains that 100 characters is the maximum with the following exceptions: If a comment line contains an example command or a literal URL longer than ​100​ characters, that line may be longer than ​100​ characters for ease of cut and paste. Import lines can go over the limit because humans rarely see them (this also simplifies tool writing). Use TODO Comments ``` // TODO: Remove this code after the Url Table2 has been checked in. ``` Use Editorconfig Android Studio (IntelliJ) enable ​Editorconfig​ plugin as default and it’s supported by most of popular IDE. So we use Editorconfig as our code style configuration. Reformat code Keep often formatting your code with,
  • 11. Workflow Scrum >>> Scrum is an iterative and incremental agile software development framework for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal", challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines involved. From ​Wikipedia Basically we do each Scrum sprint in two weeks. First, to plan Sprint. Show the progress everyday and review how the progress and determine release app or not in the second week. For more detail please see the ​page​. Software engineering development flow Design -> Implement ->​ Test Importance of teamwork Teamwork Mindsets - Communication with members anytime - Use project tools, i.e., Gitlab. And control the source code. - Before changing the code, you must discuss with your member who is original author of the code if the member still be in here. - Keep discussing if you have not get to understand. - Keep finding root cause of an issue or a bug. Solve problem permanently is the most important. - Rather found error on compile time and not happend error on runtime. - Found crashes or bugs on develop version (as early as possible) and not release version. Sharing Keep sharing in Android team. If you found any interesting post about Android or you want to recommend any helpful article you should feel free share it to other members. Or you can schedule a meeting to give an introduction or explanation.
  • 12. References - Android Studio - Picking your SDK version - Java SE Download - Jack - Enable Java 8 Features and the Jack Toolchain - Gradle - Android Gradle - Config your Build - Android Emulator - Genymotion - Code Style for Contributors - Editorconfig Advance for a project Best practices - Best Practices for Performance - Best practices in Android development - Avoiding Memory Leak​ (​Android Memory Leak Pattern​) Best resources - Must have libraries - Android Drawables - Jake Wharton’s presentations - Awesome Android UI - Awesome Android Libraries Training Official Android Developer site is always the best ​training sites​. Followings are the must read articles of learning developing with Android. - Building Your First App - Supporting Different Devices - Managing the Activity Lifecycle - Building a Dynamic UI with Fragments
  • 13. - Best Practices for Performance