如何在android framework层写的service中禁用相机等设备管理权限的操作
我觉得你可以先找到设备管理权限的代码,比如在Settings下面就有设备设备管理权限的类DeviceAdminSetting。java(不知道记错了没有)。这个地方会调用framework下面的api。相机的我没看过不知道在哪里,我只看过锁屏的
虽然我很聪明,但这么说真的难到我了
Android的framework层是如何进行音量调整的
因此,调整音量是通过AudioManager间接调用AudioService。adjustStreamVolume方法完成。
音量调整分为两步:先查看模式(Ring
mode)是否需要调整,如果不需要调整模式,当前模式一定是正常模式(Normal
mode),那就需要调整音量。
调整模式通过调用checkForRingerModeChange(oldIndex,
direction);实现,调整音量通过调用streamState。adjustIndex(direction)实现。具体代码参考/framework/base/media/java/android/media/AudioService。java中的public
adjustStreamVolume(int
streamType,
direction,
flags)方法。
该方法先检查模式是否需要调整,再进行音量调整。调整完毕后,做了两件事:
1、通过mVolumePanel。postVolumeChanged(streamType,
flags);向用户显示改变结果。
2、通过sendVolumeUpdate(streamType);广播音量有改变的系统事件。
改变音量这个功能与用户界面有关的有两个部分,分别是/framework/base/core/java/android/view/VolumePanel。java和/framework/base/services/java/com/android/server/status/StatusBarPolicy。java。
VolumePanel主要负责向用户显示一个Toast,告诉用户目前的模式(Ring
Mode)和音量大小。每次AudioService通过向post一系列Message给VolumePanel,来驱动Toast的显示。
StatusBarPolicy主要负责在静音模式(silent
mode)和振动模式(vibrate
mode)下在状态栏(status
bar)的右方显示一个代表相应意义的图标。
系统启动后,StatusBarPolicy会注册一个Receiver,它可以接收很多种广播,其中就有AudioService在完成每一次的模式和音量更新时发出的两个广播事件AudioManager。RINGER_M
安装不了GoogleServicesFramework.apk怎么破
我直接安装谷歌服务框架都木事
一般有事的都是复制到system下的app里
正常情况下返厂会保险一点,如果怕等的话就自己在论坛里面找个ROM包刷
安卓手机装
services
framework后,
找不到安装到哪个文件夹。
那正代表您没正确安装framework。
servicesframework
建议把手机rooted后安装re。
然后打开re界面,
把google
services
framework移至system/app,
android怎么样编译framework
在开发过程中,尤其是Framework相关开发时,有时候需要重新编译资源文件。编译顺序和注意事项如下:
1,资源文件位置:frameworks/base/core/res
2,编译后生成的文件:framework-res。apk
另外com。android。internal。R会更新这个R。java所在目录为/out/target/common/R/com/android/internal。
3,编译资源后,必须重新编译framework。jar。
4,如果在frameworks/base/core/res执行mm是并不重新编译,请使用toutch
###代表目录下的一个文件。
5,资源文件要小写。
6,如果没有必要,不要编译资源文件,可以用其他方式使用资源,比如将资源使用adb
传到某个目
录,程序中直接指定具体目录。我在编译资源过程中遇到一些奇怪的问题,比如有时候许多图标会显
示错误,原因猜测跟重新编译资源有关,可以试着重新编译services。jar并替换看看。
举一个例子:假如我想在WindowManagerService。java中使用一个图片资源pic。png。顺序如下。
1,将文件pic。png拷贝到位置:frameworks/base/core/res/res/drawable下。
2,在frameworks/base/core/res/res/drawable目录下执行touch
pic。png。
3,进入目录frameworks/base/core/res/
执行mm命令,
framework-res。apk
4,执行完后com。android。internal。R
会新生成一个R。drawable。pic的引用。在程序中使用即可。
5,在目录frameworks/base/
下执行mm
framework。jar。
6,在WindowManagerService。java中使用com。android。internal。R。drawable。pic,使用完后保存文件。
7,进入目录frameworks/base/services/java/
services。jar
8,替换机器上(虚拟机或者真机)的jar
apk文件。
framework-res。apk
/system/fr
android SystemServer.java启动的服务有哪些
基于android源代码开发
的,想在框架。。。
答:照葫芦画瓢呗,你看看framework/base/services/java/com/android/server/下的例子。一般一个server由xxxxService。java
xxxxManager。java
IxxxxManager。aidl组成。Manager和aidl在frameworks/base/core/java/android/
讨论一个问题哈,我现在是基于android源代码开发
的,想在框架。。。
答:照葫芦画瓢呗,你看看framework/base/services/java/com/android/server/下的例子。一般一个server由xxxxservice。java
xxxxmanager。java
ixxxxmanager。aidl组成。manager和aidl在frameworks/base/core/java/android/。如果是要系统启动时就运行。。。
如何创建android系统服务
本次说的系统服务,是指捆绑在system_process进程中的服务。
仔细阅读源码可以发现,在frameworks/base/services/java/com/android/server
/SystemServer。java中添加了很多服务,什么熵信息、电量、wife等等服务,这些服务启动都在launcher之前,一般要继承
Binder或者继承一个AIDL。
撰写一个aidl文件,定义服务的接口,将在编译过程中通过aidl工具生成对应的java接口。一般系统服务的aidl文件都放在framework\base\core\java\android\os目录中。
以我所写的imytool。aidl为例。在。aidl中定义自己需要加入的方法,编写规则和java接口差不多,这里不多说。
将aidl文件名添加到frameworks\base\目录下的android。mk编译脚本文件中。
local_src_files
core/java/android/accessibilityservice/iaccessibilityserviceconnection。aidl\core/java/android/os/imytool。aidl\
imytool。aidl即我加进去的aidl文件,加入后才能在make过程中编译
关于android开机过程中启动系统服务后加载apk的问题?
Hello,大家好,这有个疑惑,在android开机过程中,启动系统服务(即framework/base/services/java/com/android/server/SystemServer。java)后,系统就应该是去加载apk文件了,这时候会创建一堆的文件(在/data下),不知道这段在源码中是如何体现的?我是想在apk加载完后在某个已创建的文件夹(如/data/data/*/)下再去创建文件夹?这个文件夹里的内容是为相应app使用的?没有SD卡。
所有的apk文件都会被加到system。img里,开机起来后放在了/system/app下,system作为一个文件系统被挂载。
android 非上层程序怎么调用sensor
Android上层应用apk到G-sensor
driver的大致流程:
Android
HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念
1,源代码和目标位置
/hardware/libhardware目录,该目录的目录结构如下:
/hardware/libhardware/hardware。c编译成libhardware。so,目标位置为/system/lib目录
/hardware/libhardware/include/hardware目录下包含如下头文件:
hardware。h
通用硬件模块头文件
copybit。h
copybit模块头文件
gralloc。h
gralloc模块头文件
qemud。h
qemud模块头文件
sensors。h
传感器模块头文件
/hardware/libhardware/modules目录下定义了很多硬件模块
这些硬件模块都编译成xxx。xxx。so,目标位置为/system/lib/hw目录
2,Android对于Sensor的API定义在
hardware/libhardware/include/hardware/sensor。h中,要求在sensor。so提供以下8个API函数
[控制方面]
(*open_data_source)(struct
sensors_control_device_t
*dev);
(*activate)(struct
sensors_control_device_t
*dev,
handle,
enabled);
(*set_delay)(struct
sensors_control_device_t
*dev,
int32_t
(*wake)(struct
sensors_control_device_t
*dev);
[数据方面]
(*data_open)(struct
sensors_data_device_t
*dev,
(*data_close)(struct
sensors_data_device_t
*dev);
(*poll)(struct
sensors_data_device_t
*dev,
sensors_data_t*
android framework如何学习?
如何学好framework架构?
可以从Audio,
MediaScanner,
MediaRecord,
StageFright框架,CameraService,,
多媒体编解码等等中挑选自己需要的部分深入学习,主要是看源码,修改代码,编译验证。不像App有sdk文档可以看。
你是做什么的?应用很简单,但是理解内部的调用机制要花点时间,先看看Binder吧
看一些Android
框架的书,自学为王!
android framework的opt/telephony是什么进程
本文代码以MTK平台Android
6。0为分析对象,与Google原生AOSP有些许差异,请读者知悉。
PhoneApp(包名com。android。phone)主要代码位于
packages/services/Telephony/
frameworks/opt/telephony/
frameworks/base/telephony/
com。android。phone进程是persistent的,在开机过程中被ActivityManagerService自动启动,下图为该进程启动将要涉及到的类(以GSMPhone为例),图中类之间的关系表达可能不太准确,仅供参考。
Keith
Stuart,
declared
themselv
如有疑问,请追问。