Viewing Android Source Code from Android Studio

The Problem
When learning Android development, we may want to check Android source code once in a while.

When we click on a method of Android class, we may not see its source code like below: 
android.os.Message.recycle
public void recycle() { /* compiled code */ }
The Solution
Install Android SDK Source Code in SDK Manager
Go to Tools -> Android -> SDK Manager.

In the Android SDK Manager panel, go to the Android SDK Version: 4.4.2(API 19) in this case, select "Source for Android SDK", this will download Android source code to android-studio\sdk\sources\android-19.

We can also select "Samples for SDK", "Documents dor Android SDK". Then click "Install packages...", select "Accept Licenese" in next dialogue, and click install.

Wait until the install operation complete.

Attach Android SDK Source Code to Sourcepath
Go to File -> Other Settings -> Default Project Structure...

Select SDKs, in the middle panel, select the Android version(API 19 in this case), in the right panel, click the "Sourcepath" tab, click + button, then browse to your SKD path: C:\Programs Files\Android\android-studio\sdk\sources\android-19, then click OK.
Verify
Now use Ctrl+N to open class android.os.Message, click Ctrl+F12, then type recycle, press enter, this will navigate to recycle method.

Now you can see the source code and javadoc of Android source code.
/**
* Return a Message instance to the global pool.  You MUST NOT touch
* the Message after calling this function -- it has effectively been
* freed.
*/
public void recycle() {
 clearForRecycle();
  synchronized (sPoolSync) {
 if (sPoolSize < MAX_POOL_SIZE) {
  next = sPool;
  sPool = this;
  sPoolSize++;
 }
}
}
Post a Comment

Labels

Java (159) Lucene-Solr (112) Interview (61) All (58) J2SE (53) Algorithm (45) Soft Skills (38) Eclipse (33) Code Example (31) Linux (25) JavaScript (23) Spring (22) Windows (22) Web Development (20) Tools (19) Nutch2 (18) Bugs (17) Debug (16) Defects (14) Text Mining (14) J2EE (13) Network (13) Troubleshooting (13) PowerShell (11) Chrome (9) Design (9) How to (9) Learning code (9) Performance (9) Problem Solving (9) UIMA (9) html (9) Http Client (8) Maven (8) Security (8) bat (8) blogger (8) Big Data (7) Continuous Integration (7) Google (7) Guava (7) JSON (7) Shell (7) ANT (6) Coding Skills (6) Database (6) Lesson Learned (6) Programmer Skills (6) Scala (6) Tips (6) css (6) Algorithm Series (5) Cache (5) Dynamic Languages (5) IDE (5) System Design (5) adsense (5) xml (5) AIX (4) Code Quality (4) GAE (4) Git (4) Good Programming Practices (4) Jackson (4) Memory Usage (4) Miscs (4) OpenNLP (4) Project Managment (4) Spark (4) Testing (4) ads (4) regular-expression (4) Android (3) Apache Spark (3) Become a Better You (3) Concurrency (3) Eclipse RCP (3) English (3) Happy Hacking (3) IBM (3) J2SE Knowledge Series (3) JAX-RS (3) Jetty (3) Restful Web Service (3) Script (3) regex (3) seo (3) .Net (2) Android Studio (2) Apache (2) Apache Procrun (2) Architecture (2) Batch (2) Bit Operation (2) Build (2) Building Scalable Web Sites (2) C# (2) C/C++ (2) CSV (2) Career (2) Cassandra (2) Distributed (2) Fiddler (2) Firefox (2) Google Drive (2) Gson (2) How to Interview (2) Html Parser (2) Http (2) Image Tools (2) JQuery (2) Jersey (2) LDAP (2) Life (2) Logging (2) Python (2) Software Issues (2) Storage (2) Text Search (2) xml parser (2) AOP (1) Application Design (1) AspectJ (1) Chrome DevTools (1) Cloud (1) Codility (1) Data Mining (1) Data Structure (1) ExceptionUtils (1) Exif (1) Feature Request (1) FindBugs (1) Greasemonkey (1) HTML5 (1) Httpd (1) I18N (1) IBM Java Thread Dump Analyzer (1) JDK Source Code (1) JDK8 (1) JMX (1) Lazy Developer (1) Mac (1) Machine Learning (1) Mobile (1) My Plan for 2010 (1) Netbeans (1) Notes (1) Operating System (1) Perl (1) Problems (1) Product Architecture (1) Programming Life (1) Quality (1) Redhat (1) Redis (1) Review (1) RxJava (1) Solutions logs (1) Team Management (1) Thread Dump Analyzer (1) Visualization (1) boilerpipe (1) htm (1) ongoing (1) procrun (1) rss (1)

Popular Posts