《系统信息小助手》项目演练(一)(高级).pdf

上传人:爱问知识人 文档编号:3331707 上传时间:2019-08-13 格式:PDF 页数:26 大小:1.83MB
返回 下载 相关 举报
《系统信息小助手》项目演练(一)(高级).pdf_第1页
第1页 / 共26页
《系统信息小助手》项目演练(一)(高级).pdf_第2页
第2页 / 共26页
《系统信息小助手》项目演练(一)(高级).pdf_第3页
第3页 / 共26页
《系统信息小助手》项目演练(一)(高级).pdf_第4页
第4页 / 共26页
《系统信息小助手》项目演练(一)(高级).pdf_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《《系统信息小助手》项目演练(一)(高级).pdf》由会员分享,可在线阅读,更多相关《《系统信息小助手》项目演练(一)(高级).pdf(26页珍藏版)》请在三一文库上搜索。

1、系统信息小助手系统信息小助手项目演练项目演练 (一)(一) Android平台手机应用开发技术培训 高级.第12讲 学习目标: 目标学员: 课程时长:45分钟 有JAVA语言基础的开发者或在校计 算机相关专业大学生 掌握在Android中获取系统信息、设备系 统信息、运营商信息以及硬件信息的获 取。 软件功能分析软件功能分析 调用系统命令 使用Properties类 获取其它信息 课程目录课程目录 前言 由本次课程开始,我们将使用三个课时,实现一个系统信息小助手。 第一部分将主要讲解各种系统或硬件信息的获取。 第二部分主要讲解进程管理方面的内容。 第三部分主要讲解应用管理方面的内容。 主要希望

2、通过这款软件让各位能够更多的了解Android系统的方方面面。 软件功能分析 查看各种系统信息 查看各种硬件信息 通过系统和硬件信息的讲解,更深入的 了解Android系统。 (软件管理和进程管理在后面的课程中 介绍) 软件功能分析 调用系统命令调用系统命令 使用Properties类 获取其它信息 课程目录课程目录 如何调用系统命令获取信息 java.lang中提供了两个类, ProcessBuilder和Process。 ProcessBuilder用于创建操作系统进程( Process ),它提供启动和管理进 程( Process )的方法。 Process是一个抽象类,它代表一个进程(

3、一个可执行的程序)。它提供进程 的输入,输出,等待,检查退出状态,以及销毁进程的方法。 可以使用ProcessBuilder创建一些系统进程的调用,然后获取其执行结果。 例如:“$ cat /proc/version”命令可以获取系统版本号(这是一个Linux命令)。 在Java中,我们能使用ProcessBuilder启动该命令的进程。接下来,将介绍 ProcessBuilder和Process的具体使用方法。 ProcessBuilder及Process的使用 ProcessBuilder实例管理一个进程属性集。它的start()方法可以利用这些属性 创建一个Process实例(如下的属性

4、,是获取系统版本号) 。 与执行Linux命令一样,我们需要为ProcessBuilder设置正确的工作目录,才 能保证命令被正确执行。 此外,一些工作目录是系统的环境变量,可以使用ProcessBuilder的 environment()方法查看这些环境变量。它将返回环境变量的key,value对。 String args = “/system/bin/cat“, “/proc/version“ ; ProcessBuilder builder = new ProcessBuilder(args); builder.directory(new File(“/system/bin/“); Ma

5、p env = builder.environment(); ProcessBuilder及Process的使用 此外,我们还使用ProcessBuilder的redirectErrorStream()方法,将标准输出 和错误输出进行合并,这样处理输出时方便一些。 到此,可以用ProcessBuilder的start()方法创建一个Process实例。 最后,获取Process的输入输出即可完成进程的执行并获得结果了(目前只用 到了getInputStream获取Process 执行结果,因为没有遇到需要向Process输 入内容的情况)。 builder.redirectErrorStrea

6、m(true); Process process = builder.start(); InputStream in = process.getInputStream(); while (in.read(re) != -1) /读取内容 in.close(); 常用获取信息的系统命令 下面例举了一些常用系统信息的参数(它们都位于“/system/bin/“目录): 系统版本号 String args = “/system/bin/cat“, “/proc/version“ 处理器信息 String args = “/system/bin/cat“, “/proc/cpuinfo“ 内存信息 S

7、tring args = “/system/bin/cat“, “/proc/meminfo“ 硬盘信息, String args = “/system/bin/df“ 网络配置信息 String args = “/system/bin/netcfg“ 只需要将它们作为ProcessBuilder构造函数的参数即可使用start()方法创建出 对应的命令进程。 项目演练 制作AssistantActivity及其布局。 制作SystemActivity及其布局。 制作用于显示详细信息的InfoActivity及其 布局。 在SystemActivity的环境变量项中 调用InfoActivit

8、y显示环境变量信息。 在InfoActivity中使用ProcessBuilder获取 环境变量信息,并且显示出来。 软件功能分析 调用系统命令 使用使用PropertiesProperties类类 获取其它信息 课程目录课程目录 Properties类介绍 Properties类表示一个持久的属性集。可以通过System.getProperty(String name)方法用于得到系统的属性。 例如获取操作系统名称: 此外,还可以使用System.getProperties()来获取所有的系统属性。 System.getProperty(“os.name“) Properties p = S

9、ystem.getProperties(); Set key = p.keySet(); for (Object k : key) System.out.println(k.toString(); System.out.println(System.getProperty(k.toString(); 项目演练 在SystemActivity的设备系统信息项中 调用InfoActivity显示系统信息。 在InfoActivity中使用刚才介绍的的方法 获取Properties,并且显示出来。 软件功能分析 调用系统命令 使用Properties类 获取其它信息获取其它信息 课程目录课程目录 T

10、elephonyManage类介绍 TelephonyManage提供访问电信运营商的方法。应用程序可以通过它了解电 信服务以及状态,同时也可以得到一些描述信息 同时,应用程序也可以注册监听器来接受服务商信息状态的变化通知 TelephonyManage需要通过Context.getSystemService()来获取实例 使用时,需要先在AndroidManifest.xml中声明许可权限 TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 使用TelephonyManag

11、e获取信息 然后调用TelephonyManage的方法,即可获得相关的系统信息。 这是一个非常有用的类,其中的信息也是很多软件开发者所关心的,例如手 机号,SIM卡号等等。下面举几个常见的例子(更多详细请查阅文档): 获取设备ID: 设备的软件版本号: 获取手机号(1线): tm.getDeviceId(); tm.getDeviceSoftwareVersion(); tm.getLine1Number(); 项目演练 在SystemActivity的运营商信息项中 调用InfoActivity显示运营商信息。 在InfoActivity中使用刚才介绍的的 TelephonyManage获

12、取对应的信息 , 并且显示出来。 (在模拟器上测试,会缺少很多内容) 如何查看内存信息 使用ActivityManager.MemoryInfo这个类查看当前的内存信息。使用如下方法 可以获取其实例,然后使用其方法查询内存状况。 当前剩余内存(字符串成员变量) 是否处于低内存状态(布尔成员变量) ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo outInfo = new ActivityM

13、anager.MemoryInfo(); activityManager.getMemoryInfo(outInfo); outInfo.availMem outInfo.lowMemory 项目演练 在HardwareActivity的内存信息项中 调用InfoActivity显示内存信息。 在InfoActivity中使用刚才介绍的的 ActivityManager.MemoryInfo获取对应 的信息 并且显示出来。其它的内存信息 由最初介绍的ProcessBuilder获取。 如何查看屏幕信息 DisplayMetrics类是一个描述显示屏幕总体信息的结构。 例如屏幕大小,分辨率等等。

14、 下面有两种方法创建当前DisplayMetrics类的对象。 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); DisplayMetrics dm = getApplicationContext().getResources().getDisplayMetrics(); 如何查看屏幕信息 下面是DisplayMetrics的属性及其含义 dm.density / float 屏幕密度 dm. densityDpi / int 分辨率 dm. heig

15、htPixels / int 屏幕高低,单位是px dm. widthPixels / int 屏幕宽度,单位是px dm. xdpi / float 水平方向的物理密度 dm. ydpi / float 竖直方向的物理密度 dm. scaledDensity / float 字体在屏幕上现实的缩放因子 项目演练 在HardwareActivity的内存信息项中 调用InfoActivity显示内存信息。 在InfoActivity中使用刚才介绍的的 DisplayMetrics获取对应屏幕的信息, 并且显示出来。 项目演练 最后,我们使用ProcessBuilder及其 相关的参数,分别实现SystemActivity的 操作系统信息,及HardwareActivity的 CPU信息,硬盘信息,网络信息。 到此,我们完成了系统信息小助手的 前两项功能,在后面的课程将分别介绍进 程管理和软件管理两个模块。 总结 ProcessBuilder及Process类的使用 Properties类的使用 TelephonyManage类的使用 内存和屏幕信息的获取 本课程到此结束,谢谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1