2014-04-04 62 views

回答

1

好,三隻小豬有3種類型的構建,但其中大部分沒有工作這麼好。

無論如何,你應該see the docs here。在IDE中構建應用程序時,您會得到一個調試密鑰,這與生產密鑰不同。進行調試構建可以防止您每次都需要輸入憑據,但是當您準備發佈生產版本時顯然需要此提示。

我想這是你在說什麼,但如果你有別的考慮,那麼請詳細說明。

+0

我在詢問有關AOSP的調試v/s生產版本。 – Jake

+0

像[this](http://stackoverflow.com/questions/13950589/difference-between-eng-and-user-debug-build-in-android)?在您的術語中,您仍然是非常通用的,而且問題是......您可以開發AOSP軟件,它仍適用於我的答案,或者您可能會談論一些與衆不同的東西。 – codeMagic

+0

其實它涉及到另一個問題,我問了'adb root'命令。它需要調試構建,所以我想了解其中的差異。 – Jake

1

我不確定您是否在詢問調試/生產應用程序或調試/產品框架。所以我會介紹框架。

有兩種不同類型的機器人框架構建(整個系統的圖像)的用戶(又名生產)和userdebug的。

所有標準設備製造商都以「用戶」版本發佈設備。 Userdebug用於開發,通常只用於內部使用。

獲取root權限:

在userdebug構建,你可以簡單地做「亞行根」到你的亞行外殼切換到root模式。另外,您還可以執行「adb remount」將系統分區重新掛載到可寫入模式以進行進一步控制。

在用戶版本,您可以通過安裝特殊的蘇二進制和相應的控制程序(如supersu)獲得root訪問權限。這樣,在adb shell中,可以使用「su」來獲得特權shell。它不像userdebug構建那麼方便。

在AOSP中,您可以通過午餐命令選擇構建類型。例如 午餐aosp_hammerhead-userdebug

VS

午餐aosp_hammerhead用戶

1

有兩者之間沒有差別的基礎之上。生產版本將與調試版本一樣運行,但有一些有限的例外情況。有限的例外涉及與簽名相關的功能,即它們要求您註冊調試或生產密鑰才能正常工作。這將包括大部分API,例如GoogleMaps或Facebook,以及其他使用您的構建密鑰生成唯一標識符的其他內容(請考慮大多數OAuth2產品)。

你的問題是混亂/模糊的,因爲在現實中有兩個沒有什麼區別的基礎之上。兩者都將運行完全相同的代碼。區別在於誰可以運行它們以及如何運行它們。所有android應用程序在由唯一密鑰構建時都會進行簽名。此密鑰標識應用程序創建者,並且在生產中非常有用,以確保開發人員不會將垃圾惡意軟件發送給Google Play商店(或者至少如果他們是我們知道在哪裏可以找到它們的話)。

建立在調試模式下創建與定位於特定的機器調試密鑰簽名。這意味着如果我以調試模式構建應用程序以安裝到我的手機中,另一位坐在我旁邊的開發人員構建了完全相同的代碼庫以在手機上運行,​​則我們的兩個應用程序將使用不同的調試密鑰進行簽名。爲什麼這很重要?那麼,回到上面提到的API註冊過程,如果我使用我的調試密鑰(壞主意)創建我們公司範圍的Google Maps API註冊時,坐在我旁邊的朋友在他的機器上以調試模式構建應用程序時,他會遇到錯誤。問題是,訪問Google Maps API取決於是否安裝了使用正確密鑰註冊的應用程序。由於我們的兩個鍵不同,他的應用程序將無法正常加載。

發佈/生產模式允許您簽署應用程序是一個通用鍵,不綁定到特定的機器。這避免了上述問題。通過對所有應用使用一個密鑰,每個應用都可以訪問相同的API,只要您使用生產密鑰進行註冊即可。此生產密鑰不是特定於計算機的。您可以將它發送給您的朋友(請不要),以便他們可以像您一樣簽署應用程序。

就是這樣。你可以在這裏閱讀更多關於building and running apps。如果您有更具體的問題,請澄清。