編譯時間的check api

來源:互聯網
上載者:User

當我們修改了google 開放出來的類。所謂開放的類與開放的API,這個只是
javadoc的範疇,並不是java中public和private,也就是說,對於源碼的編譯無所
謂,只是對javadoc的產生有影響
關於類的開放和隱藏,是通過doc的注釋{@hide}來控制的

比如 TelephonyManager 這個類,我們新增了幾個成員變數,編譯的時候就會出現
如下的錯誤, 但是如果修改的是google沒有開放出來的類,比如RIL,
PhoneFactory,就不會出現這個問題,

******************************
You have tried to change the API from what has been previously approved.

To make these errors go away, you have two choices:
   1) You can add "@hide" javadoc comments to the methods, etc. listed
in the
      errors above.

   2) You can update current.xml by executing the following commands:

         p4 edit frameworks/base/api/current.xml
         make update-api

      To check in the revised current.xml, you will need OWNERS
approval.
******************************

google 給了兩個選擇:

1. 在你添加的API或者變數前面,增加javadoc 注釋@hide。但是要注意的是,並
不是簡單寫個@hide 或者 /*@hide*/ 就可以了,這些都是錯誤的javadoc注釋格
式,標準的javadoc都是這樣的 /**  */ 而且對於 format 變數 應該加上 {  }

所以我們應該這樣寫  /** {@hide} */

2. 你就是想要產生的javadoc裡面出現這個方法或者變數,你必須輸入:
make update-api

增對我們這個編譯配置,必須輸入 
make update-api PRODUCT-simu-eng
至於為什麼昨天晚上我們輸入沒有效果,是因為我們輸入的是 
make PRODUCT-simu-eng update-api 這樣是後面的update-api會被忽略掉

這樣就會系統就會自動的把我們新增的API 寫入 current.xml檔案中

以上兩個方案可以很好的解決新增API的問題,而這個問題是我們以後常常遇到的

另外,前期的開發階段,當我們用mm命令編譯單個模組的時候,並不想產生
offline-sdk,可以通過修改
build/core/config.mk 注釋掉這一行
#BUILD_DROIDDOC:= $(BUILD_SYSTEM)/droiddoc.mk

但是這個只是臨時解決方案,我們還是要找到為什麼三星這個版本用mm編譯的時候
要產生offline-sdk,而標準的版本沒有這個問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.