因为之前碰到几个项目客户需求是要把内存显示从剩余多少G改成就显示8G,第一次我没在意,改了也就改了,没有记录下来,可是后来碰到至少4个项目都有这个需求,每次都要去追一遍源码,很耽误效率,所以在这里记录下,具体修改如下:
3126-6.0SDK修改系统设置里内存显示为8G,有两种情况:插上了SD卡和不插SD卡显示的界面不一样;(1)当不插SD卡时,修改packages\apps\Settings\src\com\android\settings\deviceinfo\PrivateVolumeSettings.java类中的final BytesResult result = Formatter.formatBytes(getResources(), /*usedBytes*/8*1024*1024*1024L, 0);如果不要显示8GB下面那个小字体的内存显示,可以设置为空字符串,如mSummary.setSummary(/*getString(R.string.storage_volume_used,Formatter.formatFileSize(context, totalBytes))*/""); (2)当插上SD卡时修改的地方在packages\apps\Settings\src\com\android\settings\deviceinfo\StorageSettings.java类中的final BytesResult result = Formatter.formatBytes(getResources(), /*privateUsedBytes*/8*1024*1024*1024L, 0);如果不显示8GB下面那个小字的内存显示,跟前面的方法一样设置成空字符串;其实内存显示界面就是StorageSetting.java这个Fragment,它加载addPreferencesFromResource(R.xml.device_info_storage)布局文件;当不插SD卡时就显示PrivateVolumeSettings.java这个Fragment界面,这个界面是加载addPreferencesFromResource(R.xml.device_info_storage_volume)布局,这两个界面的顶部带进度条的部分的其实都是加载一个mSummary类addPreference(screen, mSummary),这个mSummary变量是StorageSummaryPreference.java类new出来的mSummary = new StorageSummaryPreference(context);而StorageSummaryPreference.java这个类在构造方法中加载setLayoutResource(R.layout.storage_summary)布局,打开这个storage_summary.xml布局文件就能看到两个TextView和一个ProgressBar