Android-adb-setting

本文深入解析了Android系统的各项设置参数,包括屏幕超时、开发者选项启用、应用全屏模式配置及系统全局设置列表。通过ADB命令操作,展示了如何调整设备配置,如设置屏幕关闭时间、启用调试模式、进入全屏模式等,为Android开发人员提供了实用的操作指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Refer to https://developer.android.com/reference/android/provider/Settings.Global

1. ### default  timeout of PowerManager.FULL_WAKE_LOCK is 300s=5 minutes   /RM2
peony:/ # settings get system screen_off_timeout
300000

2. Enable Debug in Setting 
peony:/ # settings put global device_provisioned 1
peony:/ # am start com.android.settings/.Settings 
peony:/ $ su

peony:/ # settings get global
usage:  settings [--user <USER_ID> | current] get namespace key
        settings [--user <USER_ID> | current] put namespace key value
        settings [--user <USER_ID> | current] delete namespace key
        settings [--user <USER_ID> | current] list namespace

'namespace' is one of {system, secure, global}, case-insensitive
If '--user <USER_ID> | current' is not given, the operations are performed on the system user.

3. App full screen mode  

> settings put global device_provisioned 1

Full :
adb shell settings put global policy_control immersive.full=*


Hide status bar:
adb shell settings put global policy_control immersive.status=*

Hide Navigation bar:
adb shell settings put global policy_control immersive.navigation=*


Hide everything except com.google.android.googlequicksearchbox
adb shell settings put global policy_control immersive.full=apps,-com.google.android.googlequicksearchbox


Restore from full screen mode  
settings put global device_provisioned 0
settings put global policy_control null


4. ### List /settings refer to  https://developer.android.com/reference/android/provider/Settings.Global
peony:/ # settings list global
adb_enabled=1
add_users_when_locked=0
airplane_mode_on=0
airplane_mode_radios=cell,bluetooth,wifi,nfc,wimax
airplane_mode_toggleable_radios=bluetooth,wifi,nfc
assisted_gps_enabled=1
audio_safe_volume_state=3
auto_time=1
auto_time_zone=1
bluetooth_disabled_profiles=0
bluetooth_on=0
boot_count=1
call_auto_retry=0
captive_portal_detection_enabled=1
car_dock_sound=/system/media/audio/ui/Dock.ogg
car_undock_sound=/system/media/audio/ui/Undock.ogg
cdma_cell_broadcast_sms=1
data_roaming0=1
data_roaming=0
debug_view_attributes=1
default_install_location=0
desk_dock_sound=/system/media/audio/ui/Dock.ogg
desk_undock_sound=/system/media/audio/ui/Undock.ogg
development_settings_enabled=1
device_name=peony
device_provisioned=1
dock_audio_media_enabled=1
dock_sounds_enabled=0
dock_sounds_enabled_when_accessbility=0
emergency_affordance_needed=0
emergency_tone=0
heads_up_notifications_enabled=1
lock_sound=/system/media/audio/ui/Lock.ogg
low_battery_sound=/system/media/audio/ui/LowBattery.ogg
low_battery_sound_timeout=0
mobile_data0=1
mobile_data=1
mode_ringer=2
netstats_enabled=1
network_scoring_provisioned=1
package_verifier_enable=1
policy_control=immersive.full=com.jci.rmlauncher:immersive.preconfirms=com.jci.rmlauncher
power_sounds_enabled=1
preferred_network_mode=22
qti.ims.call_deflect=0
set_install_location=0
stay_on_while_plugged_in=0
subscription_mode=0
theater_mode_on=0
trusted_sound=/system/media/audio/ui/Trusted.ogg
unlock_sound=/system/media/audio/ui/Unlock.ogg
usb_mass_storage_enabled=1
volte_vt_enabled=1
webview_provider=com.android.webview
wifi_display_on=0
wifi_max_dhcp_retry_count=9
wifi_networks_available_notification_on=1
wifi_on=1
wifi_scan_always_enabled=0
wifi_sleep_policy=2
wireless_charging_started_sound=/system/media/audio/ui/WirelessChargingStarted.ogg
zen_mode=0
zen_mode_config_etag=203112944
peony:/ #


 

<think>好的,用户想了解Android设置框架的架构和使用方法。首先,我需要回忆一下Android系统的基本结构,特别是设置应用相关的部分。Android的设置应用(Settings App)是用户调整系统配置的主要入口,它基于Android的四大组件之一——Activity,但整个设置框架可能还涉及其他组件,比如PreferenceFragment、ContentProvider等。 接下来,用户提到了系统级指令中的引用,虽然这些引用看起来和Android设置框架没有直接关联,比如引用[1]是关于摄像头FPS日志的,引用[2]是构建环境的问题,引用[3]和[4]涉及LoRA微调技术。可能需要确认这些引用是否有误,但用户可能希望结合这些内容,或者只是误贴了引用。暂时先专注于回答Android设置框架的问题,可能需要在回答中忽略无关引用,或者假设用户可能有其他意图。 Android设置框架的架构大致分为几个层次:用户界面层、数据管理层、系统服务接口层和底层系统服务。用户界面层通常使用Preference组件来构建设置项,比如SwitchPreference、ListPreference等,这些组件会自动处理用户交互和持久化存储。数据管理层可能使用SharedPreferences、Settings Provider或者自定义的ContentProvider来存储设置数据。系统服务接口层会通过Binder与系统服务(如WifiManager、BluetoothAdapter)通信,进行实际的配置更改。 在使用方面,开发者需要了解如何通过PreferenceFragment来构建设置界面,如何通过PreferenceManager管理设置项,以及如何监听设置变化。同时,可能需要调用系统服务提供的API来应用这些设置,比如启用/禁用WiFi、调整屏幕亮度等。安全性方面,某些敏感设置可能需要特定的权限,或者在系统级应用中才能修改。 用户的问题可能还隐含着对自定义设置项或修改系统设置的需求,比如他们引用的adb命令可能涉及修改系统配置文件,这需要系统权限或者root访问。比如引用[1]中的命令是向摄像头配置文件中添加FPS日志的启用标志,这可能属于系统级设置,普通应用无法直接修改,需要系统签名或adb权限。 此外,引用[3]和[4]提到的LoRA微调技术可能与机器学习模型调优相关,但不确定与Android设置框架的联系。可能用户有跨领域的兴趣,或者引用有误。暂时在回答中不涉及这部分内容,专注于Android设置框架本身。 总结,回答需要涵盖架构的分层、关键组件如Preference、ContentProvider、系统服务交互,以及开发中的常见用法和权限问题。同时,根据用户提供的引用,可能需要在相关部分提到系统级设置需要特定权限,如adb或系统签名,呼应引用[1]中的例子。</think>### Android设置框架架构解析 Android设置框架是用户配置系统参数的核心模块,其架构分为以下四层: #### 一、架构分层 1. **用户界面层(UI Layer)** - 使用$Preference$组件构建交互式设置项 - 支持$SwitchPreference$、$ListPreference$等20+控件类型 - 自动处理数据持久化,如: ```xml <SwitchPreference android:key="wifi_enabled" android:title="Wi-Fi"/> ``` 2. **数据管理层(Data Layer)** - 通过$Settings.System$、$Settings.Global$等系统数据库存储配置 - 使用$ContentProvider$封装数据访问 - 安全验证流程: $$ \begin{cases} \text{用户请求} \rightarrow \text{权限校验} \\ \text{通过} \rightarrow \text{写入SettingsProvider} \\ \text{拒绝} \rightarrow \text{抛出SecurityException} \end{cases} $$ 3. **系统服务接口层** - 通过Binder调用$WifiManager$、$BluetoothAdapter$等系统服务 - 典型调用示例: ```java WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); wifiManager.setWifiEnabled(true); ``` 4. **底层系统服务层** - 包含$SystemServer$中的核心服务进程 - 通过JNI与Linux内核交互 #### 二、关键工作机制 1. **设置项声明周期** 通过$PreferenceFragment$管理界面状态,自动处理屏幕旋转等配置变更 2. **跨进程通信** 采用AIDL接口实现进程间通信,如修改系统时间需要与$AlarmManagerService$交互 3. **安全机制** 敏感设置需要声明系统权限: ```xml <uses-permission android:name="android.permission.WRITE_SETTINGS"/> ``` #### 三、开发实践 1. **自定义设置项** ```java public class CustomPreference extends Preference { @Override protected void onClick() { // 触发自定义逻辑 } } ``` 2. **监听设置变更** ```java ContentObserver observer = new ContentObserver() { @Override public void onChange(boolean selfChange) { // 处理设置变更 } }; getContentResolver().registerContentObserver( Settings.System.CONTENT_URI, true, observer); ``` 3. **系统级设置修改** 需要系统签名或ADB权限,如修改摄像头配置: ```shell adb shell "echo enableFPSLog=true >> /vendor/etc/camera/camxoverridesettings.txt" [^1] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值