Android框架层为IMountService增加新接口.docxVIP

Android框架层为IMountService增加新接口.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在为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,?Cant?get?mount?service); ???????????} ???????} ???????return?mMountService; ????} ?关于Binder 可以参考下这篇文章: HYPERLINK /innost/archive/2011/01/09/1931456.html \t _blank 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 文件 ,并且还需要注意枚举里面的顺序。按照警告可以一步步修改了。 进入frameworks/base/include/storag

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档