Android-Ubuntu系統中使用Android studio並導入Android5.1源碼

一、安裝JDK1.7以上版本,過程略:
說明:選擇JDK感覺有點雞肋,編譯Android 4.4要JDK1.6,編譯Android 5.0以上版本用的是OpenJDK1.7,Android studio 推薦使用Oracle JDK1.7以上版本。
難道真要安裝三種JDK?然後切來切去?哎約,真費勁!
    如果是方案,那麼就必須安裝OpenJdk1.7 和 JDK1.6了。文檔需求的就是這樣,爲了避免不必要的error,還是按照文檔來比較好。我自己也是安裝了這兩個,爲了用Android studio,我沒安裝Oracle JDK1.7,Android studio使用OpenJDk1.7也是跑了起來,當然是否會出現什麼未知的問題,不敢肯定。但是我想,編譯手機系統軟件都用的是OpenJDK的庫,應該不會出什麼問題吧。
    如果只是學習Android源代碼,而不是工作需要,是可以不安裝OpenJDK1.7的,而直接安裝Oracle JDK1.7,同樣能編譯Android5.0以上的源碼,但是需要修改main.mk文件。
文件路徑:android5.1\build\core\。在main.mk文件中有下面一段代碼來檢測系統環境中JDK版本:
# Check for the current JDK.
#
# For Java 1.7, we require OpenJDK on linux and Oracle JDK on Mac OS.
# For Java 1.6, we require Oracle for all host OSes.
requires_openjdk := false
ifeq ($(LEGACY_USE_JAVA6),)
ifeq ($(HOST_OS), linux)
requires_openjdk := true
endif
endif

# Check for the current jdk
ifeq ($(requires_openjdk), true)
# The user asked for java7 openjdk, so check that the host
# java version is really openjdk
ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),)
$(info ************************************************************)
$(info You asked for an OpenJDK 7 build but your version is)
$(info $(java_version_str).)
$(info ************************************************************)
$(error stop)
endif # java version is not OpenJdk
else # if requires_openjdk
ifneq ($(shell echo '$(java_version_str)' | grep -i openjdk),)
$(info ************************************************************)
$(info You are attempting to build with an unsupported JDK.)
$(info $(space))
$(info You use OpenJDK but only Sun/Oracle JDK is supported.)
$(info Please follow the machine setup instructions at)
$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
$(info ************************************************************)
$(error stop)
endif # java version is not Sun Oracle JDK
endif # if requires_openjdk
按照上面代碼的意思,將requires_openjdk := true改成requires_openjdk := false,就可以使用Sun/Oracle JDK來編譯。
 
二、下載Android studio 2.0 Preview(Linux 版)和Android SDK,過程略:
    可以從http://www.androiddevtools.cn/下載。
    下載以後解壓,然後將android-studio移動到opt目錄下,命令行:sudo mv android-studio /opt/ (在當前目錄下使用的命令).
    啓動android studio的兩種方式:
    1)直接通過命令啓動:/opt/android-studio/bin/studio.sh
    2)可以把android studio添加到ubuntu系統的application中,並鎖定在到啓動器上。
      首先在桌面上新建一個文檔,命名爲androidstudio.desktop,然後打開寫入一下內容:
  [Desktop Entry]
  Version=1.0
  Name=Android studio
  Exec=/opt/android-studio/bin/studio.sh
  Terminal=false
  Icon=/opt/android-studio/bin/studio.png
  Type=Application
  Categories=Development;IDE
  Terminal=false
  最後保存將這個文件移動到/usr/share/applications/,如圖:
    
    由於我使用的ubuntu 12.0.4,所以可以打開Dash主頁,搜Android studio:
    
    選擇這個圖標,就會啓動android studio,同時啓動器上也會有android studio的圖標,此時右鍵選擇鎖定到啓動器,以後就可以比較方便的啓動Android studio:
         
    第一次啓動android studio最好還是設置一下disable.android.first.run=true,寫在文件/opt/android-studio/bin/idea.properties中;
    第一次啓動android studio 之前最好更新一下sdk,最好不要支持庫是最新版本,Target SDK 卻不是Android 23,這樣在新建應用的時候可能會提示一些資源找不到什麼的錯誤,當然可以修改一些配置瞭解決,但還是能更新就更新吧。
    啓動android studio的時候,如果IDE右上角提示什麼watches limit,大致意思是什麼文件夾大小配置的太少了之類的,如圖:
   
    這個時候可以點擊More details提示,然後會調到一個網頁上,上面有提示如何處理的方法:    
sudo gedit /etc/sysctl.conf
    在這個文件最下面增加下面這句話:
 fs.inotify.max_user_watches = 524288
 最後執行下面命令,重啓android studio,提示不見: 
 sudo sysctl -p

三、導入Android 5.1源碼到Android studio中:
    如何導入源碼,Android 源碼工程裏面有個README文檔,簡單的介紹瞭如何將源碼導入到Android studio 或者Eclipse,文件路徑:
    \android5.1\development\tools\idegen\README
    1)增加IDE Memory:打開/opt/android-studio/bin/studio64.exe.vmoptions(32位的打開studio.exe.vmoptions):將Xms得值改爲748(非固定)。   
-Xms748m
    -Xmx1280m
    -XX:MaxPermSize=350m
    -XX:ReservedCodeCacheSize=225m

    2)編譯源碼,如果編譯過了就不用編譯了,在根目錄下直接 make idegen,編譯完成以後會在根目錄下生成兩個文件android.iml和android.ipr。android.iml是配置文件,配置android源碼中那些模塊會被加載到android studio。現在打開android studio-file-open,選擇android.ipr,然後就是等它加載完吧。說實話等了好久,具體不知道用了多少時間,等了10幾分鐘,我就掛着睡大覺了,第二天起來看到加載完了,話說我電腦配置不戳啊,編譯源碼也就1個半小時,用Eclipse導入源碼也沒超過10分鐘就完事了啊。弄到這裏,其實我已經差不多放棄了使用android studio來debug 源碼了,不過還是繼續弄了弄,導入完整個源碼顯示是這樣的,如圖:
    
    跟Eclipe的完全不一樣啊,也沒有Eclipse直觀,eclipse有保留原本的文件結構。
    最後試了下debug,通過emulator命令啓動模擬器,結果整個電腦都卡的不要不要的(用真機可能會好些)。使用Eclipse沒這麼卡過,不光打開模擬器,還編譯都沒卡的這麼厲害, 所以暫時我還是放棄使用Android studio來debug Android 源碼,目前我還是使用Eclipse來debug源碼,配置簡單,使用起來也不會卡頓,打斷點調試也方便。不過我特麼喜歡Android studio打斷點調試,變量的值顯示的特麼清晰。
    如果想用android studio來調試android工程源碼,可以參考這篇文章:http://www.cnblogs.com/Lefter/p/4176991.html
    如果想用Eclipse來調試android工程源碼,可以參考:Android-Windows下Eclipse導入源碼調試    
    如果有哪位朋友使用Android studio調試Android工程源碼,使用的順風順水,請指點一二啊,拜謝!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章