如何在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包刷

安卓手机装

google

services

framework后,

找不到安装到哪个文件夹。

那正代表您没正确安装framework。

google

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

如有疑问,请追问。