多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 在Settings關于設備中添加一項 生產日期

在Settings關于設備中添加一項 生產日期

來源:程序員人生   發布時間:2017-03-03 08:34:24 閱讀次數:2770次

在Settings關于裝備中添加1項 生產日期

  • 要求在初始化的時候有個默許值
  • 可以從nvramGent中讀取

Setting中的布局文件

在 packages/apps/Settings/res/xml/device_info_settings.xml中添加

<Preference android:key="product_date"
style="?android:preferenceInformationStyle" android:title="@string/product_date"
android:summary="@string/device_info_default" />

在Strings.xml中定義

<string name="product_date">Production date</string>

同時也需要提供中文的標示

寫好了布局文件以后,在DeviceInfoSettings.java 中,定義1個 string,

 public class DeviceInfoSettings extends SettingsPreferenceFragment implements Indexable {
 ...
 private static final String KEY_PRODUCT_DATE="product_date";

在Oncreate中 設置summary

findPreference(KEY_PRODUCT_DATE).setSummary(Build.ProductDate);

此時,使用的是Build的1個屬性來給我們需要的生產日期做賦值。

Build中添加1個屬性

在frameworks/base/core/java/android/os/Build.java中

添加1個

public static final String ProductDate=SystemProperties.get("persist.sys.pdate");

這里使用的是1個系統的屬性系統,定義的是persist.sys.pdate 這么1個變量

這個變量是如何被賦值?
以persist開頭的屬性,可以進行動態的改變。 為了到達系統開啟的時候,就可以對其賦值,
現在類比系統中bootloader的版本號的方式進行賦值

屬性的賦值

android系統的第1個進程是 init的進程,
在inint進程中,現在重點關注 bootloader版本賦值的進程。
在 system/core/init/init.c中可以通過搜索得到

  char tmp[PROP_VALUE_MAX];
    int ret;
    unsigned i;
    struct {
        const char *src_prop;
        const char *dest_prop;
        const char *def_val;
    } prop_map[] = {
        { "ro.boot.serialno", "ro.serialno", "", },
        { "ro.boot.mode", "ro.bootmode", "unknown", },
        { "ro.boot.baseband", "ro.baseband", "unknown", },
        { "ro.boot.bootloader", "ro.bootloader", "unknown", 

現在可以在后邊添加這樣的方式,來實現在init進程中就設定了生產日期

  { "ro.boot.productdate", "persist.sys.pdate", "20170111", }

init.c粗略分析

函數的調用進程

main
     process_kernel_cmdline
        export_kernel_boot_props

這里 main又是誰調用的呢?
在這個目錄下。可以找到Android.mk


LOCAL_SRC_FILES:= \
    builtins.c \
    init.c \
LOCAL_MODULE:= init

這個目錄下的會生成1個 init的module
這個module在 init.rc中進行指定

system/core/rootdir/init.rc

on init
    sysclktz 0
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美激情一区二区三区在线 | 最近手机版免费中文字幕 | 亚洲成人影院在线 | 亚洲一区二区三区高清 | 一级爱爱片一级毛片-一毛 一级爱一级做a性视频 | 天堂69亚洲精品中文字幕 | 亚洲精品伊人 | 视频在线观看免费网址 | 中文字幕亚洲一区二区三区 | 国产欧美另类久久精品91 | 亚洲欧美一区二区三区另类 | 亚洲综合三区 | 国产综合精品久久亚洲 | 成人夜夜嗨 | 亚洲精品人成无码中文毛片 | 日韩成a人片在线观看日本 日韩成人国产精品视频 | 日韩理论片在线观看 | 免费精品久久 | 老司机午夜精品视频 | 一本久草 | 国产产一区二区三区久久毛片国语 | 综合亚洲一区二区三区 | 久久中文字幕日韩精品 | 欧美在线观看高清一二三区 | 国产不卡精品一区二区三区 | 宅男看片午夜大片啪啪mv | 亚洲成人黄色网 | 24小时中文乱码字幕在线观看 | 成人免费视频在 | 国产福利在线网址成人 | 亚洲综合日韩中文字幕v在线 | 国产成人一区二区三区 | 国产三级理论片 | 亚洲一区日韩二区欧美三区 | 国产丰满眼镜女在线观看 | 2019最新中文字幕 | 亚洲第一视频区 | 成人高清毛片a | 最新亚洲精品国自产在线 | 中文字幕免费在线观看 | 久久亚洲影院 |