前言
在Android源碼的分析過程中經常會看到System.getenv(“xxx”)和getenv(“xxx”)以及Os.getenv(“xxx”)獲取Android系統的環境變量值,本篇的重點不是分析代碼的調用邏輯,而是講解怎麼在Android開發源碼環境下增加和在Android終端環境下增加/查看系統環境變量。廢話不多說開幹!
一. Android源碼環境下增加環境變量
有過Linxu開發相關經驗的童靴們應該都知道,對於添加環境變量一般都是通過export,然後通過echo來顯示,在Android中同樣也是如此。通過全局搜索我們發現Android源碼的環境變量設置的默認文件是在system/core/rootdir/init.environ.rc.in中,這裡並不是說只能在這個rc中添加,其實在其它的rc中在合適的觸發時機加也是OK的,我源碼下的該文件如下:
# set up the global environment on init export ANDROID_BOOTLOGO 1 export ANDROID_ROOT /system export ANDROID_ASSETS /system/app export ANDROID_DATA /data export ANDROID_STORAGE /storage export EXTERNAL_STORAGE /sdcard export ASEC_MOUNTPOINT /mnt/asec export BOOTCLASSPATH %BOOTCLASSPATH% export SYSTEMSERVERCLASSPATH %SYSTEMSERVERCLASSPATH% %EXPORT_GLOBAL_ASAN_OPTIONS% %EXPORT_GLOBAL_GCOV_OPTIONS%
所以我們想添加環境變量只需要export就OK了,這裡就不實際操作了,有興趣的可以自行操作。
二. Android終端下查看和修改環境變量
在Android終端下查看和修改環境變量肯定是通過adb了,下面我們實際操演一番。
2.1 查看系統環境變量
這裡還是得借用export和echo命令了,操作如下:
λ adb shell msm8953_64:/ # export ANDROID_ASSETS ANDROID_BOOTLOGO ANDROID_DATA ANDROID_ROOT ANDROID_SOCKET_adbd ANDROID_STORAGE ASEC_MOUNTPOINT BOOTCLASSPATH DOWNLOAD_CACHE EXTERNAL_STORAGE HOME HOSTNAME LOGNAME PATH SHELL SYSTEMSERVERCLASSPATH TERM TMPDIR USER msm8953_64:/ # echo $ANDROID_BOOTLOGO 1 msm8953_64:/ # echo $ANDROID_DATA /data msm8953_64:/ #
2.2 設置系統環境變量
這裡還是得借用export和echo命令了,操作如下:
130|msm8953_64:/ # export HELLOWORD=Android msm8953_64:/ # echo $HELLOWORD Android msm8953_64:/ #
小結
好了,Android獲取和設置系統環境變量這一篇章就告一段落了。學會了這一招我們就可以在分析Android源碼中通過adb命令直接查看系統環境變量的相關值了,這樣分析起來就得心應手了。各位江湖見!
[niceskyabc ] Android獲取與設置系統環境變量的方法指南已經有288次圍觀