1019. Android 源码编译的LOCAL_SDK_VERSION选项、hide和internal API

个人博客: 斯科特安的时间

这是Android源码编译的一个坑。

今天添加一个feature时,import了IPackageManager类,编译时提示找不到这个类。而这个类确实已经在编译好的源码中存在,并且在其他项目中引用时编译通过。
只有一个项目不通过。
后来通过对比发现这个项目的Android.mk文件中有这么一行,注释之后,编译通过。

# 若是添加,编译时会忽略源码隐藏的API,导致编译失败
LOCAL_SDK_VERSION := current

拓展一下,android sdk中的两类特殊的API

  1. Internal API
  2. Hide API

1 . Internal API

翻译为内部API,理解为供sdk内部使用的API。
这类接口最初打算就是不对外公开的,有点private的意思。

2 . Hide API

在源码中看到使用@hide 标记的方法或类,就是hide的。
这类接口本意是要公开,但是当前阶段仍然不稳定或未开发完成。所以暂时不推荐开发者调用。

但是,他们都可以被使用

两种方式:

  1. 通过反射
  2. 使用这些接口的情况是:目标接口已经编译进framework.jar(或其它对应的jar包)中,但是自己应用在编译时会报错。所以只要自己应用编译时同样添加相关jar包的引用,便可以编译通过。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,342评论 25 709
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,770评论 2 45
  • 行尸走肉第六季第3集前天晚上更了,在同学生日聚会快踩点的时候偷瞄了一眼,正好跳到格伦和尼古拉斯跌入尸群,格伦被吃的...
    西宫太后阅读 7,298评论 6 3
  • 前段时间参加高中同学的婚礼,档次尽显奢华。 光是伴娘的队伍就从舞台的这一头排到了另一头。她们每个人都挺着胸昂着头展...
    左岸姑娘阅读 2,312评论 0 2
  • 假如风来过阅读 1,724评论 0 0

友情链接更多精彩内容