电池信息验证
1、
查看电池信息需要接收一个系统广播,一旦电池信息发生变化,应用程序能够立即显示电池新信息。android系统提供了一个Intent.ACTION_BATTERY_CHANGED广播Action,只要把它注册到广播接收器,即可获取电池信息。
//mBatteryInfoReceiver:用来接收手机电池信息变化时候产生的广播
//Intent.ACTION_BATTERY_CHANGED 电池状态发生变化,他会自动向系统广播Action
//将电池广播数据(Intent)注册到mBatteryInfoReceiver中
registerReceiver( mBatteryInfoReceiver, new IntentFilter( Intent.ACTION_BATTERY_CHANGED ) );
2、mBatteryInfoReceiver为广播接收器,一旦发出Intent.ACTION_BATTERY_CHANGED,系统自动调用BroadcastReceiver方法。在BroadcastReceiver里面可以通过intent获取电池的数据
private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver( ) {
//如果应用程序接收到系统的发送的广播,就会执行调用onReceive函数
@Override
public void onReceive( Context context, Intent intent )
{
……略
//从intent里面得到数据,level表示当前电量的值,0为默认值
int level = intent.getIntExtra( "level", 0 );
//scale表示电量的总刻度,默认值为100
int scale = intent.getIntExtra( "scale", 100 );
//当前电池运行状况,要跟BatteryManager里面的属性进行比较
int health = intent.getIntExtra( "health", BatteryManager.BATTERY_HEALTH_UNKNOWN );
//电池技术(Li电池?还是其他)
String tStr = intent.getStringExtra( "technology" );
//电压
int voltage = intent.getIntExtra( "voltage", 0 )
//温度
int temperature = intent.getIntExtra( "temperature", 0 )
}
}
SD
卡技术验证
1、在模拟器下测试,需要准备:
建立SD卡: mksdcard 100M D:\sdcard.img
将sd卡放入模拟器中: emulator --avd (设备名称) --sdcard D:\sdcard.img
将数据放入sd卡中:adb push E:/music/a.mp3 sdcard
2、SD卡容量
public static ArrayList<String[]> getSdInfo(Context ctx) {
ArrayList<String[]> data = new ArrayList<String[]>();
//linux把设备当作文件处理,从系统中获取SD设备
File path = Environment.getExternalStorageDirectory();
//新建一个stat,它可以查看路径上面的系统文件
StatFs stat = new StatFs(path.getPath());
//一个块的 有多少字节
long blockSize = stat.getBlockSize();
//设备上有多少个空闲的块
long availableBlock = stat.getAvailableBlocks();
//设备上所有的块
long availableBlocks = stat.getBlockCount();
Log.v("blockSize", String.valueOf(blockSize));
Log.v("tag", String.valueOf(availableBlocks));
//换算成字节
long availablePlace = availableBlock * blockSize;
long placeCount = availableBlocks * blockSize;
//换算成GB 或 MB单位
data.add(new String[] {
ctx.getString(R.string.total), formatSize(placeCount, ctx)
});
data.add(new String[] {
ctx.getString(R.string.free), formatSize(availablePlace, ctx)
});
return data;
}
问题:新建100MB的SD卡容量,total显示只有98.43MB,剩下1.57MB哪里去了?被inode
占用(
待考证
)
???(见SD卡参考资料)
系统文件技术验证(root文件夹)
public static ArrayList<String[]> getSysMemoInfo(Context ctx) {
ArrayList<String[]> data = new ArrayList<String[]>();
//获取root文件夹下面目录(系统文件夹)
File path = Environment.getRootDirectory();
if ( path != null )
{
try
{
StatFs stat = new StatFs( path.getAbsolutePath( ) );
long blockSize = stat.getBlockSize( );
data.add(new String[] {
ctx.getString(R.string.total), formatSize( stat.getBlockCount( )
* blockSize, ctx)
});
data.add(new String[] {
ctx.getString(R.string.free), formatSize( stat.getAvailableBlocks( ) * blockSize, ctx)
});
return data;
}
catch ( Exception e )
{
Log.e( Util.class.getName( ), "Cannot access path: " //$NON-NLS-1$
+ path.getAbsolutePath( ), e );
}
}
return data;
}
参考:
http://www.cnblogs.com/crazypebble/archive/2011/04/09/2010196.html
PS:附上SD卡资料(http://arlen.opcom.blog.163.com/blog/static/33775037201112221933170
)
1、无论我们愿意不愿意,SD卡每次读写数据的最小单位是1个扇区,即512个字节。
2、SD卡允许以块数据进行读取,有的可以用CMD16命令设定每读取的块为512字节
3、SD卡分成:Parition Area 和 Regualr Area,其中Partion Area是存放MBR和PT,Regualr Area包含了System Area 和 User Area。
分享到:
相关推荐
本文档是一份深入浅出的Android学习笔记,旨在帮助初学者快速搭建开发环境,理解和掌握Android应用的基本构建过程。下面将详细阐述Android开发的基础知识。 一、平台搭建(以Windows环境为例) 1. Java SDK:Java ...
Android是谷歌公司开发的一款开源移动操作系统,广泛应用于智能手机、平板电脑和智能电视等设备。这份“Android详细笔记”涵盖了从基础到进阶的各种知识点,旨在帮助读者深入理解Android开发技术。 一、Android系统...
这份"Android笔记.zip"的压缩包很可能包含了一份详尽的Android开发者的学习指南。以下是一些关键的Android知识点的深入解析: 1. **Android架构**:Android系统基于Linux内核,分为应用程序层、应用程序框架层、...
这篇教程和笔记涵盖了Android开发的基础知识,旨在为初学者提供一个良好的起点。以下是对这些主题的详细解析: 一、Android概述 Android是一种开源的操作系统,主要应用于移动设备,如智能手机和平板电脑。它由...
"Android学习实例备份"这个压缩包文件很可能包含了开发者在探索Android平台时积累的各种代码示例、文档和笔记,这些都是深化理解Android开发的重要资源。下面,我们将深入探讨这些可能包含的知识点,并提供一些学习...
例如,当系统状态改变(如电池电量低)或接收到自定义广播时,广播接收者会接收到通知并作出响应。创建广播接收者需要在AndroidManifest.xml中注册,或者在运行时动态注册。理解如何正确使用IntentFilter来过滤接收...
最后,学习如何使用Android Studio的调试工具进行问题定位,以及如何通过内存分析、性能监控和代码优化提升应用性能。 通过以上这些基础知识的学习,你将具备开发简单Android应用的能力。然而,Android开发是一个...
在Android源码开发实战中,11.11章节可能涉及了Android系统深层次的理解和定制。这个压缩包可能包含了一系列的教程、代码示例或...文件列表中的"11.11"可能代表一系列的课件、代码示例或者笔记,用于辅助学习和实践。
4. **Bootloader**:Bootloader是启动嵌入式系统的第一个软件,负责加载操作系统到内存中。常见的Bootloader有U-Boot和LiBRE。 5. **文件系统**:嵌入式Linux系统也需要文件系统来组织和管理数据。常见的文件系统...
《黑马安卓核心基础笔记》是一份全面且深入的Android学习资料,旨在帮助初学者和有经验的开发者巩固和提升在Android开发领域的技能。这份笔记包含了丰富的理论知识和实践代码,是自学者的理想资源。 Android是一种...
嵌入式系统设计是计算机科学和技术领域中的一个重要分支,它涉及到在特定应用中集成硬件和软件的复杂系统。PDA,即个人数字助手,是一种典型的嵌入式系统应用,主要用于个人信息管理和通信。在这个主题中,我们将...
这个压缩包很可能包含了一系列章节、笔记或者项目文件,以9.04作为主要的学习内容。下面将详细讨论Android源码开发的相关知识点。 1. **Android系统架构**:Android是一个分层的系统,由Linux内核、硬件抽象层(HAL...
1. **平台适应性**:作为一款Android应用,它必须考虑到各种设备的兼容性,包括不同的屏幕尺寸、分辨率以及操作系统版本。这通常涉及到布局的响应式设计和性能优化,以确保在各种设备上都能流畅运行。 2. **文本...
【Android随手记】是一款专为Android平台设计的创新性移动笔记应用,旨在提供高效、便捷的笔记记录体验,尤其适合现代学习者的需求。这款应用程序充分利用了Android系统的特性,结合先进的技术,让用户能够在任何...
在本毕业论文“基于Android平台的手机电子书阅读器设计-毕业论文-定稿”中,作者探讨了如何为Android操作系统开发一款功能完善的电子书阅读器应用。这一项目旨在为移动设备用户提供一个方便、易用且功能丰富的阅读...
本文将深入探讨如何开发一款适用于Android系统的电子书阅读器,包括基本架构、关键技术、用户体验优化等方面。 一、项目初始化与环境搭建 开发Android应用首先需要安装Android Studio,它是Google官方提供的集成...
在当前的数字化时代,二合一电脑,也称为2-in-1设备,已经成为移动计算领域的一个重要创新。...通过阅读“一种可拆分式笔记本、平板二合一电脑.pdf”这份文件,我们可以深入学习和了解这类设备的更多细节和技术参数。
分析Android电子书阅读器的源码有助于理解其内部工作原理,学习如何解析不同格式的电子书文件,以及如何构建高效、友好的用户界面。这对于开发者来说是提升技能、借鉴优秀实践的好机会。 总的来说,Android电子书...
5. **操作系统与软件**:描述运行的操作系统(可能是定制版的Android或iOS),以及预装的学习应用和软件,如何帮助用户高效学习。 6. **教育资源**:可能会提到与知名教育平台的合作,以及内置的丰富教育资源,如...