Android增加service和对应的AIDL
来源:互联网 发布:诺基亚淘宝官方旗舰店 编辑:程序博客网 时间:2024/06/05 15:26
在Android中,应用访问service提供的接口都是通过AIDL(Android Interface Definition Language),可以理解为一种规范,甚至可以粗陋的理解为C语言里面的.h文件,如果你曾经是一名C语言开发者,而且只是使用的话。下面的例子是想增加获取cpu 频率的service及其对应的AIDL,其中并没有实际的读取频率和设置governor的操作,仅仅用于演示如何在framework中增加一个service和AIDL。
1) 增加AIDL接口文件
文件:frameworks/base/core/java/android/os/ICpuFreqService.aidl
package android.os;
import android.os.WorkSource;
/** @hide */
interface ICpuFreqService
{
int getCurGovernor();
int getCurFrequency();
}
2) 在Android.mk中增加ICpuFreqService.aidl接口文件的编译选项
文件:frameworks/base/Android.mk
LOCAL_SRC_FILES += \
……….
core/java/android/os/ICpuFreqService.aidl\
……..
3) 实现CpuFreqService.java
文件:frameworks/base/services/java/com/android/server$ ls CpuFreqService.java
package com.android.server;
import android.os.ICpuFreqService;
class CpuFreqService extendsICpuFreqService.Stub{
static int EnterTimes=0;
public int getCurGovernor()
{
return0x11233;
}
public int getCurFrequency()
{
EnterTimes++;
return (EnterTimes*50);
}
}
4) 在SystemService中注册service
文件:frameworks/base/services/java/com/android/server/SystemServer.java
CpuFreqService cpufreq=null;
………………
Slog.i(TAG, "CpuFreq Manager");
cpufreq = new CpuFreqService();
ServiceManager.addService("cpufreq",cpufreq);
5) 在APP中调用AIDL接口
…………….
import android.os.ServiceManager;
import android.os.ICpuFreqService;
……………...
try {
ICpuFreqService cpuFreq=
ICpuFreqService.Stub.asInterface( ServiceManager.getService("cpufreq"));
setSummaryText("baseband_version",Integer.toString(cpuFreq.getCurGovernor()));
Log.e("Status","Governor=" + Integer.toString(cpuFreq.getCurGovernor()));
Log.e("Status","Freq ="+ Integer.toString(cpuFreq.getCurFrequency()));
} catch (Exception e)
{
}
- Android增加service和对应的AIDL
- Android增加service和对应的AIDL
- Android下增加service和对应的AIDL
- Android下增加service和对应的AIDL
- android service 和aidl
- android service binder 和AIDL
- service和aidl的区别
- Android系统中aidl的理解和service的添加
- Android:Service之远程服务和AIDL的创建
- Android自定义增加系统服务和AIDL
- android中service和aidl详细整理
- android中service和aidl详细整理
- android中service和aidl详细整理
- android中service和aidl详细整理
- android中service和aidl详细整理
- Android 之 AIDL 和远程 Service 调用
- Android Service讲解 和 aidl 实现
- Android Service 之绑定服务和AIDL
- C++内部数据类型和非内部数据类型
- Spring整合hibernate4:事务管理
- JAVA——各类型所占字节数
- 【LintCode】Evaluate Reverse Polish Notation 逆波兰表达式求值
- 杀毒与免杀技术详解之一:介绍
- Android增加service和对应的AIDL
- CREATE A RAM DISK IN LINUX
- Keepalived 安装与配置
- 基于velocity的分页组件
- Ubuntu下apt-get与pip安装命令的区别
- 优秀博文
- 伪选择器
- NYOJ 38 布线问题(最小生成树--kruskal)
- 9.1数组与字符串(六)——若M*N矩阵中某个元素为0,则将其所在的行与列清零