windows下調試android源代碼


android開發中,因為網上的資料較少,查看android源代碼很有必要,那我們怎么才能在android開發中調試android源代碼呢?經過筆者的不斷嘗試,給出了windows下調試android源代碼的方案,此方案只是臨時替代方案,稍顯繁瑣,還是希望官方能早點給出調試android源代碼的解決方案。

    本文參考了William Hua把Android源代碼加入SDK(Updated)以及Eric BurkeBrowsing Android Source in Eclipse

一.配置環境

筆記本:Thinkpad T400 Intel Core 2 Duo P8400 2.26GHz

內存:6GB DDR3

OS : Window 7 Professional 64

Eclipse : Indigo (Java EE)

二 下載Android源代碼

這里提醒一下,window下無法使用repo(因為Android是由kernel、Dalvik、Bionic、prebuilt、build等多個Git項目組成,所以Android項目編寫了一個名為Repo的Python的腳本來統一管理這些項目的倉庫,使得Git的使用更加簡單 引自syles發布,新手掃盲貼之一什么是GIT和REPO),所以推薦使用ubuntu或者macox下載Android源代碼,我就是把我在Mac OS 10.6(Snow Leopard)編譯Android源代碼一文中下載的源代碼拷貝到window中。當然,window中下載Android源代碼也不是不可以,不過需要使用git命令獨立的下載每個git包,或者參考網上的批處理文件(我擔心由於android版本的升級,會導致批處理文件失效,未嘗試,也請有經驗的網友指點)。

三 關聯Android源代碼

由於Android Eclipse plugin (ADT)不允許我們在項目屬性中attach源代碼到android.jar上,好在Eric Burke找到了把source加入到SDK中的辦法,通過分析ADT的源代碼我們知道ADT是從SDK目錄下的“sources”目錄來查找class對應的源代碼,這樣我們只要把源代碼放到sources目錄中ADT就可以自動找到對應的源代碼了。

另外Android源代碼包含在不同的目錄中,而放到sources文件夾下的源代碼應該按照包名以文件夾的形式組織,好在William Hua寫了一個py腳本,不過我在使用這個py腳本的時候碰到了一些問題,自己改了一下。

主要問題是,在生成文件時報gbk codec錯誤

gbkerror

估計有幾個文件里有特殊的字符,造成py腳本中斷退出,這里我用了個笨辦法,吃掉UnicodeDecodeError異常,這樣保證py腳本會生成所有的java文件,除了(產生UnicodeDecodeError的文件,我用的是2.3.3 gingerbread版本,應該有3-4個有問題的java,暫時用不到,不管他)

with open(source) as f:
      try:
       for line in f:
        match = re.match(r'\s*package\s+([a-zA-Z0-9\._]+);', line)
        if match:
          package_path = match.group(1).replace('.', os.sep)
          try:
            os.makedirs(os.path.join(sources, package_path))
          except os.error:
            pass
          destination = os.path.join(sources, package_path, filename)
          if destination not in written:
            written[destination] = True
            shutil.copy(source, destination)
          break
      except UnicodeDecodeError:
        print(source)

另外我用的是python 3.1.1,需要把原有py腳本的print命令加上括號,python我是新手,自己摸索的

使用方法

fix_android_sdk.py < android-source > < android-sdk >

比如我的<android-source>是 c:\android   <android-sdk>是 c:\android\android-sdk

則寫法應該是 fix_android_sdk.py c:\\android  c:\\android\\android-sdk

最后在eclipse中Java Source Attachment中指向生成的路徑

androidbuildpath

最后我們即可在eclipse中看到源代碼

activitysource

修改后的fix_android_sdk.py下載地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM