【发布时间】:2014-05-13 11:40:15
【问题描述】:
我正在通过 adb shell 在我的 android 设备上的 /proc 目录中查找,并查看了其中一个进程的 environ 文件的内容。环境变量列表如下:
- 路径
- LD_LIBRARY_PATH
- ANDROID_BOOTLOGO
- ANDROID_ROOT
- ANDROID_ASSETS
- ANDROID_DATA
- ANDROID_STORAGE
- ASEC_MOUNTPOINT
- LOOP_MOUNTPOINT
- 引导类路径
- EXTERNAL_STORAGE
- EMULATED_STORAGE_SOURCE
- EMULATED_STORAGE_TARGET
- ANDROID_PROPERTY_WORKSPACE
- ANDROID_SOCKET_zygote
此列表与 Linux 中的环境变量不同。当我在我的 ubuntu-12.04 上看到某个进程的环境文件时,我看到一个更长且非常不同的列表(只有 PATH 相同)。
我有以下问题:
-
Android在哪里定义环境变量?
由于Android中的environ文件和linux的不同,肯定是在哪里做了改动
-
有没有办法为这些变量提供默认值?
我认为 init 可能具有默认值,并且分叉的进程会继承这些值,并且在分叉后可能会在某处修改值(如果有人知道此类代码的实际位置,请分享)
-
list 中每个环境变量的作用是什么?
我了解 PATH 和 LD_LIBRARY_PATH 变量,它们是从 linux 派生的。其他人呢?它们什么时候使用? Android 应用(可能是 NDK)将它们用于什么用途?
谢谢。
【问题讨论】:
-
抱歉,这还不够具体,无法以本网站的格式处理。您看到设置的变量继承自进程的所有祖先,如果是应用程序进程,则包括 init、zygote 等。除非您有不安全的设备,否则您无法在应用程序启动之前真正自定义它们。
-
投票结束太广泛了。请分成多个小问题;-)
标签: android linux environment-variables