博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的Android进阶之旅------>对Java中注释/**@hide*/的初步认识
阅读量:6765 次
发布时间:2019-06-26

本文共 1552 字,大约阅读时间需要 5 分钟。

    

   今天写一个调节系统背光亮度的时候,参考了Android中的Setting源码,在源码中有这么一段代码:

private static final int MAXIMUM_BACKLIGHT = android.os.PowerManager.BRIGHTNESS_ON;

        然后我模仿它的代码,来进行编写我的应用,但是当我copy这段代码后报错

     报错内容如下:

BRIGHTNESS_ON cannot be resolved or is not a field

 然后我去察看源代码,发现定义如下:

/**     * Brightness value for fully on.     * @hide     */    public static final int BRIGHTNESS_ON = 255;

      明显声明为public,怎么可能会访问不到呢?再细看注释,发现里面有“@hide”这个标志。后来百度一下才认识到,类或API是否开放,是通过doc的注释{@hide}来控制的。这表示不对外公开api,但是系统内部是可以使用该注释标记的接口的。

       google 给了两个选择:1. 在你添加的API或者变量前面,增加javadoc 注释@hide。但是要注意的是,并不是简单写个@hide 或者 /*@hide*/ 就可以了,这些都是错误的javadoc注释格式,标准的javadoc都是这样的 /** */ 而且对于 format 变量 应该加上 { }。所以我们应该这样写 /** {@hide} */ 2. 你就是想要生成的javadoc里面出现这个方法或者变量,你必须输入:make update-api 但是如果修改的是google没有开放出来的类,比如RIL,PhoneFactory,就不会出现这个问题。

       如何解决这个报错的问题呢,问了一下公司的前辈,前辈是这么解释的,加入了 /** {@hide} */ 注视后的类或者API是google编译时不对外开放的,但是运行的时候这写类和API都是可以访问的。为了在Eclipse中不报错的话,可以准备以下几步就可以不报错了。

1,准备好编译后的Android源码。

2,在该源码的out目录下寻找包含你所用隐藏类的jar文件,通常文件名为classes.jar。例如framework的jar文件为out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar。

3,在eclipse的Android项目中,选择项目属性->Java Build Path->Libraries->Add Library->User Library->Next-> UserLibraries进入到User Libraries管理界面,点击New新建一个User Library,比如android_framework,点击Add Jars把Jar包加入到建立的User Library中,最后点击OK就可以了。

现在在Eclipse中就不会再报错了。

====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址

===================================================================================

转载于:https://www.cnblogs.com/ouyangpeng/p/8538141.html

你可能感兴趣的文章
Java异常
查看>>
第四单元博客作业
查看>>
Annotation
查看>>
一个"如何使用示波器安全测试接市电电路板"的问题
查看>>
SQL Server 索引和视图
查看>>
checkbox前后台使用
查看>>
什么是java的事物
查看>>
Windows的SEH机理简要介绍
查看>>
[转载]深入理解SQL注入绕过WAF和过滤机制
查看>>
Django进阶
查看>>
Vue 路由的懒加载和组件的按需加载方法
查看>>
Koa框架的一些随记
查看>>
0423-mysql插入语句大全
查看>>
mui SQL分页加搜索功能 案例
查看>>
Sington单例模式(创建型模式)
查看>>
idea导入或者检出项目时发现编辑器左侧无法显示项目目录结构
查看>>
添加相关功能
查看>>
php基础
查看>>
html5+canvs实现flash效果。
查看>>
《JAVA与模式》之简单工厂与工厂方法
查看>>