android i 网络接口,android框架层为imountservice增加新接口.docx

PAGE / NUMPAGES

在为Android 增加多分区的支持时,可能会需要获得当前 USB 连接的挂载口,可能标准的Android 框架并未提供这样的接口给开发者,这时就需要我们自己为它提供接口了。先来看一下上层(应用)如何得到一个IMountService 的。

?private?synchronized?IMountService?getMountService()?{???????if?(mMountService?==?null)?{???????????IBinder?service?=?ServiceManager.getService("mount");???????????if?(service?!=?null)?{???????????????mMountService?=?IMountService.Stub.asInterface(service);???????????}?else?{???????????????Log.e(TAG,?"Can't?get?mount?service");???????????}???????}???????return?mMountService;????}

?关于Binder 可以参考下这篇文章: Android深入浅出之Binder机制?。文档来自于网络搜索

Android 2.2新增接口?

Android 2.2为IMountService 新增接口非常容易,在frameworks/base/core/java/android/os/storage?有一个IMountService.aidl 文件,可以直接在这个文件里面新增一个接口提供给上层,如:文档来自于网络搜索

/*add?by?terry*/????String?getUsbMountPointPath();文档来自于网络搜索

该文件负责生成IMountService.java文件,接着进入frameworks/base/services/java/com/android/server?,打开MountService.java 该文件继承于IMountService.aidl生成的类文档来自于网络搜索

class?MountService?extends?IMountService.Stub

在这个类里面实现我们为IMountService.aidl 新增的接口

public?String?getUsbMountPointPath(){???????return?usbMountPointPath;????}文档来自于网络搜索

OK。通过上面的操作, StorageManage ?就可以很方便的得到这个为其新增的接口,上层便可以访问了。文档来自于网络搜索

编译步骤:

1):编译framework/base (生成IMountService.java)

?2):编译framework/base/service (编译MountService)

3):编译framework/base ?(编译StorageManage以提供给上层调用)

?

Android 4.0 以上新增接口

相比于Android 2.2,在Android 4.0框架层 为IMountService 新增一个接口就显得比较复杂了。文档来自于网络搜索

?按照Android 2.2 新增接口的方法,我们会先进入frameworks/base/core/java/android/os/storage 查找IMountService.aidl文件,进入目录,ls 一下,会发现并没有该文件,取而代之的是IMountService.java。这是怎么回事?打开该文件:映入眼帘首先会看到该警告:文档来自于网络搜索

?

?/**?*?WARNING!?Update?IMountService.h?and?IMountService.cpp?if?you?change?this?*?file.?In?particular,?the?ordering?of?the?methods?below?must?match?the?*?_TRANSACTION?enum?in?IMountService.cpp?*?*?@hide?-?Applications?should?use?android.os.storage.StorageManager?to?access?*???????storage?functions.?*/文档来自于网络搜索

该警告提示我们,如果要修改这个文件,必须先修改IMountService.h 头文件和 IMountService.cpp 文件 ,并且还需要注意枚举里面的顺序。按照警告可以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值