[android] 分析setting源代码获取SD卡大小

[android] 分析setting源代码获取SD卡大小,第1张

概述保存文件到sd卡需要判断sd卡的大小,通过查看android系统的自带应用的源代码,得到方法,sdk下面的source是sdk的源代码,包含的是android.Jar下面的所有class的源代码。在a

保存文件到sd卡需要判断sd卡的大小,通过查看androID系统的自带应用的源代码,得到方法,sdk下面的sourcesdk的源代码,包含的是androID.Jar下面的所有class的源代码。在androID系统源代码中有ndkjavac,dalvik虚拟机等,里面packages/apps/settings是设置的源代码。

 

导入一个源代码,import ==> general ==> existing projects into workspace 选择完root目录后会报错(no project to import) 

正确导入 import  ==>  androID ==> existing androID code into workspace ==>选中root目录 完成

导入系统源码此时的项目里面会报各种错误,原因是一些API找不到,忽略掉就行,Environment.getExternalStorageDirectory()得到根路径file类型的

Environment.getDataDirectory() 获取手机内存

调用file对象的getPath(),得到String路径,实例化StaFs

调用StaFs对象的getBlockCount() 得到空间个数,调用getAvailableBlock()可用个数

调用StaFs对象的getBlockSize() 得到每个空间大小 两个相乘得到总空间大小

调用Formatter.formatfileSize() 格式化大小(androID.text.format

 

根据系统设置的文字信息搜索代码部分,按ctrl+h 找文件搜索,在setting源码中查找到。windows上面存储文件,首先格式化硬盘,比如存储1个字节的信息,占用空间也是4kb

 

activity代码:

 

package com.tsh.readsdsize;import java.io.file; androID.app.Activity; androID.os.Bundle; androID.os.Environment; androID.os.StatFs; androID.text.format.Formatter; androID.util.Log; androID.Widget.TextVIEw;public class MainActivity extends Activity {    private TextVIEw tv;    @SuppressWarnings("deprecation")    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        tv=(TextVIEw) findVIEwByID(R.ID.tv);        //SD卡根目录        file rootfile=Environment.getExternalStorageDirectory();        StatFs stat=new StatFs(rootfile.getPath());        int size=stat.getBlockSize();        long count=(long) stat.getBlockCount();        long avaNum=stat.getAvailableBlocks();        long sum=size*count;        long avaSum=avaNum*格式化        String sdSize=Formatter.formatfileSize(this,sum);        String avSdSize=Formatter.formatfileSize(getRomSize());    }    /**     *      * 获取手机内存大小     */    public String getRomSize(){        file rootfile=Environment.getDataDirectory();        StatFs stat=return "总空间(手机):"+sdSize+"\n"+"可用空间(手机):"+avSdSize;    }}

 

总结

以上是内存溢出为你收集整理的[android] 分析setting源代码获取SD卡大小全部内容,希望文章能够帮你解决[android] 分析setting源代码获取SD卡大小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存