2014-04-02 194 views
7

我正在通過adb shell在我的android設備上查看/ proc目錄,並查看其中一個進程的environ文件的內容。環境變量的列表如下:Android linux環境變量

  • PATH
  • LD_LIBRARY_PATH
  • ANDROID_BOOTLOGO
  • ANDROID_ROOT
  • ANDROID_ASSETS
  • ANDROID_DATA
  • ANDROID_STORAGE
  • ASEC_MOUNTPOINT
  • LOOP_MOUNTPOINT
  • BOOTCLASSPATH
  • EXTERNAL_STORAGE
  • EMULATED_STORAGE_SOURCE
  • EMULATED_STORAGE_TARGET
  • ANDROID_PROPERTY_WORKSPACE
  • ANDROID_SOCKET_zygote

這是名單是在Linux中看到的環境變量不同。當我在我的ubuntu-12.04上看到一些進程的環境文件時,我看到一個更長的列表和非常不同的列表(只有PATH相同)。

我有以下問題:

  • 哪裏安卓定義的環境變量?

    由於在Android中ENVIRON文件是從不同的Linux,它必須作出了改變的地方

  • 是有沒有爲這些變量提供默認值的方法嗎?

    我假定初始化可能具有默認值和派生的進程繼承值&有值的可能修改分叉後的地方(如果有人知道這種代碼的實際位置,請分享)

  • 是什麼列表中每個環境變量的目的是什麼?

    我明白路徑& LD_LIBRARY_PATH變量,它們是從linux派生的。其他人呢?他們什麼時候使用? Android應用程序(可能是NDK)會用它來做什麼?

謝謝。

+1

對不起,但這不足以處理本網站的格式。您看到的變量集是從進程的所有祖先繼承的,如果它是一個應用程序進程,則包含init,zygote等。除非您有不安全的設備,否則在啓動應用程序之前無法真正對其進行自定義。 –

+0

投票結束太寬泛。請分成多個小問題;-) –

回答

-3

Android使用linux,但它不是GNU/Linux,所以很多事情都不一樣。

+1

具體給出答案,而不是發表聲明。 – Ila

+0

同樣,用可理解的語言評論。 – LtWorf