Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 使用Android Studio查看Android Lollipop源碼

使用Android Studio查看Android Lollipop源碼

編輯:關於Android編程

Android Studio

作為Google的親兒子,Nexus手機系列所收到的待遇大家有目共睹.Android5.0出來之後,Nexus5第一時間就升級到了最新的系統.那麼作為Google親兒子的Android Studio同樣備受Google的重視,我也是第一時間從Eclipse轉投到了Android Studio的懷抱中,從最初的測試版本一路升級到現在的1.0正式版本(今天發布了1.0.2,果斷已經升級了),關於Android Studio的好處我就不用說了,下面兩點就足矣讓你轉投Android Studio了:

  • Android Studio是Google官方指定的,目前官網已經去掉了ADT, 大家可以在Android開發者官網中進行查看,目前只有Android Studio提供下載了.
  • Google也表示ADT不再進行維護了.

轉投Android Studio時大勢所趨,網上關於如何使用Android Studio的帖子也是滿天飛,所以我就不再啰嗦誇獎Android Studio了.看一下下面的圖,估計你就會很有欲望了.想查看詳細的內容,可以查看Android Studio官方文檔

Android Studio Preview
Android Studio Preview

Android 5.0 : Lollipop

Android Lollipop是Google在今年推出的,關於Lollipop的詳細介紹可以查看Lollipop官方介紹,我也就不多說了.作為一個開發者,我們不應該停留在表面(即Lollipop的絢麗的界面,和新奇的設計語言Material design),我們更要了解其中的原理.

准備工作

在使用Android Studio查看源碼之前,你需要做下面幾件事:

  • 下載Android Lollipop源碼(當然不一定非要是Lollipop源碼,其他的版本也是可以的)
  • 進行過一次完整編譯(不編譯是無法進行源碼導入工作的)

以上操作可以參考Google 官方教程以確保萬無一失(呵呵).上面的幾個鏈接需要翻牆才可以訪問,不過有興趣看這篇文章的人,大部分應該都是知道VPN的.或者沒有VPN不會翻牆的,速度去賣一個VPN,能花錢解決的事情,就不要花時間.

開始

  • 進入Android 源碼根目錄
  • 執行
    mmm development/tools/idegen/
    這行命令的意思是編譯idegen這個項目,生成idegen.jar文件.生成成功後,會顯示這個jar包的位置,並顯示#### make completed successfully (43 seconds) ####,如果編譯失敗了,後面會講到這種情況(比較少見)
  • 執行
    sh ./development/tools/idegen/idegen.sh
    這行命令的意思是生成對應的文件:android.iws, android.ipr, android.iml .如果生成失敗,後面也會講到這種情況.
  • 生成對應的文件後,打開Android Studio,選擇打開一個現有的Android Studio項目,選擇Android源碼的根目錄,導入即可(起作用的是android.irp文件).在配置sdk版本之後就可以查看Android 源碼了.
  • 已經完成了,沒有下一步了.

問題

  • 執行第一個命令的時候編譯不過,出現這種情況的原因有好幾種:
  • Android 源碼沒有下載完全
  • 沒有進行全部編譯
  • 環境變量配置有問題

    解決方法依問題而定,網上對應的帖子很多,可以自己去找. 推薦這種問題還是去Google和StackOverFlow上去問.

  • 執行第二個命令的時候,碰到下面的問題:
Exception in thread "main" java.io.FileNotFoundException: ./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.java (Is a directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileReader.(FileReader.java:72)
at Configuration.parsePackageName(Configuration.java:204)
at Configuration.rootOf(Configuration.java:180)
at Configuration.traverse(Configuration.java:140)
at Configuration.traverse(Configuration.java:167)
at Configuration.traverse(Configuration.java:167)
at Configuration.traverse(Configuration.java:167)
at Configuration.traverse(Configuration.java:167)
at Configuration.traverse(Configuration.java:167)
at Configuration.traverse(Configuration.java:167)
at Configuration.traverse(Configuration.java:167)
at Configuration.(Configuration.java:72)
at Main.main(Main.java:37)

解決辦法是將
./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.java
修改為:
./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.j
即可.

後記

使用Android Studio看Android源碼很爽,下面是他們的優缺點:

優點

  • 和Android 完美結合
  • 代碼提示很全
  • 代碼跳轉很強
  • IDE比Eclipse好看(我說的是黑色主題)
  • 插件很強大(底層是IDEA你懂得)
  • 免費(SourceInsight負分,啥?你用的破解版? 當我沒說)

缺點

  • 對C++代碼的支持不是很好
  • 有一定的上手難度
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved