Android系统应用调用Aidl
项目需求:1. 创建一个系统应用TestAPP,该应用开机自启动一个service,service为其他应用提供数据接口
2. 在acitivity源码里增加方法,调用系统应用里TestAPP的方法,进行数据交互.
1.在目录frameworks/base/core/java/android/app/下添加aidl文件:
IHelloWorld.aidl:
package android.app;
import java.lang.String;
interface IHelloWorld
{
void printHelloWorld();
void printString(String string);
}
需要注意:
(1) 该文件的package声明应为:package android.app;
在“LOCAL_SRC_FILES += \”中,参照IAlarmManager的添加方式:
core/java/android/app/IAlarmManager.aidl \
在“LOCAL_SRC_FILES += \”的最后面添加:
core/java/android/app/IHelloWorld.aidl,
需要注意:
(1) 在core/java/android/app/IHelloWorld.aidl上面一行的最后面,还需要添加“\”;
3. 编译framewor后,找到(源码根路径)\out\target\common\obj \JAVA_LIBRARIES\路径的下面framework_intermediates 下的classes.jar文件。
4. 在 eclipse 里面添加一个新的User Library. 如名字为 android-lib(可以自己命名)
5. 把这个 android-lib 设置为System library,并把classes.jar导入(同事说选中System library是让jar只参与编译,不参与运行)
6. 把新的 android-lib 添加到工程,然后在Java Build path中让android-lib的order高于Android4.4(具体版本看项目)
上述步骤完整后就可以再项目里应用AIDL了。
如果要在AIDl里使用自己定义的parcelable类,假如
FriendInfo.java这个类实现Parcelable
需要再同一目录下生成FriendInfo.aidl
具体可以参考frameworks/base/core/java/android/app/下面的PendingIntent
更多相关文章
- NPM 和webpack 的基础使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- 读取android手机流量信息
- Android(安卓)Activity界面切换添加动画特效
- android 使用html5作布局文件: webview跟javascript交互
- Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
- android“设置”里的版本号
- Android中不同应用间实现SharedPreferences数据共享
- Android开发环境搭建