Android 7.1.1 设置-存储-内部共享存储空间
字符串资源所在目录:
/frameworks/base/core/res/res/values-zh-rCN/strings.xml
<string name="storage_internal" msgid="3570990907910199483">"内部共享存储空间"</string>
Java代码路径:
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
return Resource.getSystem().getString(com.android.internal.R.string.storage_internel);
设置部分代码路径:
/package/apps/Settings/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
onCreate()中设置了布局
addPreferencesFromResource(R.xml.device_info_storage_volume);
getPreferenceScreen().setOrderingAsAdded(true);
设置-存储-内部共享存储空间-应用
设置-存储-内部共享存储空间-图片
设置-存储-内部共享存储空间-视频
设置-存储-内部共享存储空间-音频
设置-存储-内部共享存储空间-系统
设置-存储-内部共享存储空间-其他
private static final int [ ] ITEMS_SHOW_SHARED = new int[ ] {
R.string.storage_detail_apps;
R.string.storage_detail_images;
R.string.storage_detail_videos;
R.string.storage_detail_audio;
R.string.storage_detail_system;
R.string.storage_detail_other;
};
设置-存储-内部共享存储空间-缓存数据
addItem(screen, R.string.storage_detail_cached, null, Userhandle.USER_NULL);
设置-存储-内部共享存储空间-浏览
mExplore = buildAction(R.string.storage_menu_explore);
onPreferenceTreeClick 处理了这些id的点击事件。
想看一下这个分区界面的显示到底是针对哪个实际分区的:
调用PrivateVolumeSettings.java的地方是:
Android N 设置界面主要由由Conditions,Suggestions和Main Menu三部分组成Android 7.0 settings 新功能全面解析
Settings.java 是一个静态Class的集合(那么所有的初始化操作自然在其父类实现),里面定义了用于独立启动的设置子类,追从其继承关系
Settings extends SettingsActivityextends SettingsDrawerActivityimplements
PreferenceManager.OnPreferenceTreeClickListener,
PreferenceFragment.OnPreferenceStartFragmentCallBack,
ButtonBarHandler,FragmentManager.OnBackStackChangedListener,
SearchView.OnQueryTextListener,SearchView.OnCloseListener,
MenuItem.OnActionExpandListener
SettingsActivity.java 的OnCreate() 看出刚开始主界面是转入DashBoardSummary.java这个Fragment的界面。进入DashBoardSummary.java,查看其onCreate(),
可以看出主的Menu Tree 上的所有列表信息,来源于getDashboardCategries()这个函数,查看这个函数的声明,发现其位于SettingsDrawerActivity.java中。
SettingsDrawerActivity.java 位于/frameworks/base/package/SettingsLib/src/com/android/settingslib/drawer/
查看getDashboardCategries()的定义,发现所有列表信息来源于TitleUtils类的getCategroies()类,从这个类的内部发现,其实所有的列表项都是从AndroidManifest.xml
文件中解析得到的,具体的解析配置涉及到如下两块:
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.wireless" />
<intent-filter android:priority="4">