当前位置: 首页 > news >正文

Android系统中 setprop,getprop,watchprops命令的使用

如:在frameworks/opt/net/ims/src/java/com/android/ims/ImsManager.java

if (SystemProperties.get("persist.mtk_dynamic_ims_switch").equals("1")) {  

我们想知道系统中persist.mtk_dynamic_ims_switch的值是多少,可以用如下方法

adb shell 进入android文件系统中:

shell@GF179:/ $ getprop persist.mtk_dynamic_ims_switch
0

 

 

在Android系统中,有一些初始化的配置文件,例如:

/init.rc

/default.prop

/system/build.prop

文件里面里面配置了开机设置的系统属性值,

这些属性值,可以通过getprop获取,setprop设置,

它的格式如下:

getprop [key]

获取指定key的配置值,如果不带参数,只是getprop则是显示系统所有的配置值。

[dalvik.vm.heapsize]: [24m]

[curlockscreen]: [1]

[ro.sf.hwrotation]: [0]

[ro.config.notification_sound]: [OnTheHunt.ogg]

[ro.config.alarm_alert]: [Alarm_Classic.ogg]

setprop [key] [value]
设置指定key的属性值,
watchprops
监听系统属性的变化,如果期间系统的属性发生变化则把变化的值显示出来
/system # watchprops
1307501833 sys.settings_system_version = '37'
1307501836 sys.settings_system_version = '38'
1307501862 persist.sys.timezone = 'Asia/Hong_Kong'
其实这三个命令都是toolbox的子命令,如果有兴趣的可以看在android源码中看到其对应的源码:
system/core/toolbox/


一般而言,我们在串口中输入getprop指令,会出现很多类似键值对的系统变量值,上图:




这些都是系统值,然而这些都是都是底层创建的变量,例如在某个驱动程序中创建,但如果在java语言中想获得这些信息中的某个变量的值,怎么办呢?
1,上一节我们讲解了,在java中如何调用linux的指令,主要通过如下代码实现:
            Process process =  Runtime.getRuntime().exec(com);
            InputStreamReader ir = new InputStreamReader(process.getInputStream());
            BufferedReader input = new BufferedReader(ir);

2,我们想getprop和setprop既然都是命令,能不能也用上面的方面尝试得到值呢 ,当然。
     getprop 用法:getprop [key]
    setprop用法:setprop [key] [value]  
   注:实际中是没有中括号的。
所以用法同上:
            Process process =  Runtime.getRuntime().exec("getprop ro.runtime.firstboot");
            InputStreamReader ir = new InputStreamReader(process.getInputStream());
            BufferedReader input = new BufferedReader(ir);

转载于:https://www.cnblogs.com/Ph-one/p/5868212.html

相关文章:

  • Linux/Unix里,ln -s
  • ubuntu下环境变量
  • ubuntu /etc/profile和/etc/environment的比较
  • 【图像处理】ISP 图像传感器camera原理
  • 什么是RAW数据?
  • linux设备驱动编写_tasklet机制
  • hrtimer和work工作队列的使用
  • nautilus-open-terminal很有用的插件--鼠标右键打开终端
  • userdebug版本开机串口log打开
  • no branch 问题
  • 网页撤销后ubuntu本地撤销
  • 电子类网站
  • ubuntu查看内存占用和查看cpu使用情况的简单方法(ubuntu内存管理)
  • 文件映射mmap
  • Linux的bg和fg命令简单介绍
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • bearychat的java client
  • Computed property XXX was assigned to but it has no setter
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Django 博客开发教程 8 - 博客文章详情页
  • Go 语言编译器的 //go: 详解
  • java多线程
  • java小心机(3)| 浅析finalize()
  • PHP 7 修改了什么呢 -- 2
  • Spring Boot快速入门(一):Hello Spring Boot
  • Twitter赢在开放,三年创造奇迹
  • TypeScript迭代器
  • 飞驰在Mesos的涡轮引擎上
  • 力扣(LeetCode)965
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 因为阿里,他们成了“杭漂”
  • 7行Python代码的人脸识别
  • Linux权限管理(week1_day5)--技术流ken
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (1)(1.9) MSP (version 4.2)
  • (14)Hive调优——合并小文件
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (bean配置类的注解开发)学习Spring的第十三天
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (九)c52学习之旅-定时器
  • (十一)图像的罗伯特梯度锐化
  • (一)Dubbo快速入门、介绍、使用
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)socket Aio demo
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 事件模型教程(二)