Android取得系统信息和分辨率内存信息
来源:互联网 发布:像韩国人的淘宝模特 编辑:程序博客网 时间:2024/06/05 07:19
android.os.Build.VERSION.SDK_INT; 代替android.os.Build.VERSION.SDK,返回int类型
android.os.Build.VERSION.RELEASE; 用户可见的版本 如 Android2.2
android.os.Build.VERSION.SDK; SDK 版本 对应系统版本 如返回8 --对应 Android2.2
android.os.Build.MODEL; 手机类型 HTC Desire
获取android当前可用内存大小
- private String getAvailMemory()
- {
- //获取android当前可用内存大小
- ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
- MemoryInfo mi=new MemoryInfo();
- am.getMemoryInfo(mi);
- //mi.avaiMem;当前系统可用内存
- return Formatter.formatFileSize(getBaseContext(), mi.availMem);
- //将获得的内存大小规格化
- }
获得系统总内存
- private String getTotalMemory()
- {
- String str1="/proc/meminfo";//系统内存信息文件
- String str2;
- String[] arrayOfString;
- long initial_memory=0;
- try{
- FileReader localFileReader=new FileReader(str1);
- BufferedReader localBufferedReader=new BufferedReader(localFileReader,8192);
- str2=localBufferedReader.readLine();//读取meminfo第一行,系统内存大小
- arrayOfString=str2.split("\\s+");
- for(String num:arrayOfString){
- Log.i(str2,num+"\t");
- }
- initial_memory=Integer.valueOf(arrayOfString[1]).intValue()*1024;//获得系统总内存,单位KB
- localBufferedReader.close();
- }catch(IOException e){
- }
- return Formatter.formatFileSize(getBaseContext(), initial_memory);
- //Byte转位KB或MB
- }
获取CPU最大频率(单位KHZ)
- // 获取CPU最大频率(单位KHZ)
- // "/system/bin/cat" 命令行
- // "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" 存储最大频率的文件的路径
- public String getMaxCpuFreq() {
- String result = "";
- ProcessBuilder cmd;
- try {
- String[] args = { "/system/bin/cat",
- "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" };
- cmd = new ProcessBuilder(args);
- Process process = cmd.start();
- InputStream in = process.getInputStream();
- byte[] re = new byte[24];
- while (in.read(re) != -1) {
- result = result + new String(re);
- }
- in.close();
- } catch (IOException ex) {
- ex.printStackTrace();
- result = "N/A";
- }
- return result.trim();
- }
获取CPU最小频率(单位KHZ)
- public String getMinCpuFreq() {
- String result = "";
- ProcessBuilder cmd;
- try {
- String[] args = { "/system/bin/cat",
- "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq" };
- cmd = new ProcessBuilder(args);
- Process process = cmd.start();
- InputStream in = process.getInputStream();
- byte[] re = new byte[24];
- while (in.read(re) != -1) {
- result = result + new String(re);
- }
- in.close();
- } catch (IOException ex) {
- ex.printStackTrace();
- result = "N/A";
- }
- return result.trim();
- }
实时获取CPU当前频率(单位KHZ)
- public String getCurCpuFreq() {
- String result = "N/A";
- try {
- FileReader fr = new FileReader(
- "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");
- BufferedReader br = new BufferedReader(fr);
- String text = br.readLine();
- result = text.trim();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return result;
- }
程序版本信息
- try {
- PackageManager pm = getPackageManager();
- PackageInfo pinfo = pm.getPackageInfo(String类型 应用标识,PackageManager.GET_CONFIGURATIONS);
- String versionCode = pinfo.versionName;
- }
- catch (NameNotFoundException e)
- {
- e.printStackTrace(System.err);
- }
分辨率
- // 获取屏幕密度(方法1)
- int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px)
- int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); // 屏幕高(像素,如:800p)
- // 获取屏幕密度(方法2)
- DisplayMetrics dm = new DisplayMetrics();
- dm = getResources().getDisplayMetrics();
- float density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
- int densityDPI = dm.densityDpi; // 屏幕密度(每寸像素:120/160/240/320)
- float xdpi = dm.xdpi;
- float ydpi = dm.ydpi;
- Log.e(TAG + " DisplayMetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi);
- Log.e(TAG + " DisplayMetrics", "density=" + density + "; densityDPI=" + densityDPI);
- screenWidth = dm.widthPixels; // 屏幕宽(像素,如:480px)
- screenHeight = dm.heightPixels; // 屏幕高(像素,如:800px)
- // 获取屏幕密度(方法3)
- dm = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(dm);
- density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
- densityDPI = dm.densityDpi; // 屏幕密度(每寸像素:120/160/240/320)
- xdpi = dm.xdpi;
- ydpi = dm.ydpi;
- int screenWidthDip = dm.widthPixels; // 屏幕宽(dip,如:320dip)
- int screenHeightDip = dm.heightPixels; // 屏幕宽(dip,如:533dip)
- screenWidth = (int)(dm.widthPixels * density + 0.5f); // 屏幕宽(px,如:480px)
- screenHeight = (int)(dm.heightPixels * density + 0.5f); // 屏幕高(px,如:800px)
方法一和方法二取大部分的设备的分辨率是没问题的,但是有的设备的分辨率需要乘上相应的密度像第三个方法那样如i9000(密度1.5),但是moto XT720密度1.5,但是不需要乘以密度。可能就是因为Android系统开源,不同的手机生产厂商没有统一的制造标准,来规定手机屏幕。
- screenWidth = (int)(dm.widthPixels * density + 0.5f);
getWindowManager().getDefaultDisplay().getMetrics(dm)
Initialize a DisplayMetrics object from this display's data.
getResources().getDisplayMetrics()
Return the current display metrics that are in effect for this resource object. The returned object should be treated as read-only.返回和资源有关的单位换算
density DPI
1 160 1dp = 1dip = 1px
1.5 240 1dp = 1dip = 1.5px
120dpi 对应资源中的res/XXX-ldpi
160dpi 对应资源中的res/XXX-mdpi
240dpi 对应资源中的res/XXX-hdpi
320dpi 对应资源中的res/XXX-xhdpi Android 2.2 API Level 8开始才有的分类
对应的比例3:4:6:8
1英寸 = 2.54厘米
1英尺 = 0.3048米
- Android取得系统信息和分辨率内存信息
- Android取得系统信息和分辨率内存信息
- Android取得系统信息和分辨率内存信息
- 取得系统硬件信息
- Android取得Activity和Service信息
- android 取得设备信息
- 用java取得linux系统cpu、内存的实时信息
- 用java取得linux系统cpu、内存的实时信息
- 用java取得linux系统cpu、内存的实时信息
- 用java取得linux系统cpu、内存的实时信息
- android系统信息和应用信息
- 取得系统防病毒软件和防火墙的信息
- Android获取系统cpu信息,内存,版本,电量等信息
- Android获取系统cpu信息,内存,版本,电量等信息
- Android中获取系统内存信息以及进程信息
- Android获取系统cpu信息,内存,版本,电量相关信息
- Android小功能 -- 获取系统内存信息以及进程信息
- Android获取系统cpu信息,内存,版本,电量等信息
- 链表实现的堆栈程序(仅供自己学习使用)
- python的函数、模块、包
- sharepoint 2013 更改搜索服务器配置
- 将git的变更merge到svn或将svn的变更merge到git.
- 安卓activity捕获返回按钮关闭应用的方法
- Android取得系统信息和分辨率内存信息
- HDU 1263 水果
- iOS开发-必须知道的后台运行机制(2)
- lightoj 1391 Speed Zones
- PowerPoint VBA参考教程
- 【暑假在家不虚度,学习赢在兄弟连】兄弟连开启暑期PHP学习计划!
- mybatis中的#和$的区别
- 杭电2031进制转换----20140731
- 50道Java习题之04