使用Android设备信息作为控制相关变量

  • 获取Android设备相关信息
    • build.prop文件
    • adb获取设备信息
    • Android Jni编程C层获取设备信息

获取Android设备相关信息

在Android开发中有时需要获取设备信息,一般可以通过ADB命令来获取设备build.prop文件中记录的设备信息,有时也需要在代码中获取这些信息,如下介绍两种可以使用的方法,获取设备相关信息。

build.prop文件

在Android系统中有一个类似Windows系统注册表的文件build.prop。这个文件内定义了系统初始(或永久)的一些参数属性、功能的开放等。通过调整/增加参数可以达到较调系统性能偏重点和附加功能开启的作用。
因此,如果需要获取设备信息,如设备名称、型号、默认分辨率等都可以从这个文件中读取;

adb获取设备信息

ADB,即 Android Debug Bridge,可以通过一些命令来控制Android手机,因此通过adb命令来获取设备信息的方式是十分方便的。
一下为一些常用的设备信息:
[查看设备信息]
[型号]
[电池状况]
[屏幕分辨率]
[屏幕密度]
[显示屏参数]
[android_id]
[IMEI]
[Android 系统版本]
[IP 地址]
[Mac 地址]
[CPU 信息]
[内存信息]
[更多硬件与系统属性]
adb命令如下:adb shell getprop,这个命令可以获取build.prop中的所有信息,如果需要获取其中的指定信息,可以在后面加上需要获取的id(姑且这个称呼),如:
adb shell getprop ro.product.model 设备名称
adb shell wm size 屏幕分辨率
adb shell wm density 屏幕密度
adb shell getprop ro.build.version.release Android系统版本
还有很多信息,可以参考adb shell getprop的输出来找;

Android Jni编程C层获取设备信息

最近一个项目需要在库中获取设备名称,用于判断是否为目标设备,从而控制该库是否可以运行,这时就需要在代码中获取设备信息,可以考虑如下方法:

// An highlighted blockstatic bool isDeviceNameOK(){char deviceName[PROP_VALUE_MAX];__system_property_get("ro.product.name", deviceName);LOGD("isDeviceNameOK: devices name is %s", deviceName);char targetDeviceName[] = "DeviceName";int ret =  strcmp(targetDeviceName, deviceName);LOGD("isDeviceNameOK: strcmp ret = %d", ret);if(0 == ret){return true;}else{return false;}}

isDeviceNameOK函数用于判断目前设备名称与目标设备是否一致,其中targetDeviceName为目标设备名字,__system_property_get为Linux下获取设备信息的方法,"ro.product.name"即为设备名称id(姑且这么称呼);

更多相关文章

  1. 【转】Android中对Log日志文件的分析
  2. android:gravity 和 android:layout_Gravity属性——android开发
  3. Android之文件读写
  4. android调用隐藏的网络信息设置菜单实现
  5. android usb Host模式下与usb Hid 设备的通信
  6. Android 文件格式
  7. android项目中每个文件的作用
  8. Fast File Transfer – 让 Android 通过 WIFI 传输文件到任何无
  9. 键盘设备三星在Android上的改进对Developer的影响

随机推荐

  1. 关于Android中Java与Javascript之间的传
  2. 如何让Android模拟器的Browser可以浏览In
  3. Android开源项目汇总
  4. 在Android下抓包
  5. Android(安卓)Studio 检测内存泄漏与解决
  6. 2012年总结
  7. 在cmd窗口中查询android的sqlite3数据库
  8. Android中Fragment嵌套Fragment,切换Fragm
  9. 【Android(安卓)Developers Training】 7
  10. Android内存溢出的解决方法(VMRuntime.get