android基础——对Java中注释/**@hide*/的初步认识

转载 2013年12月25日 00:53:57

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

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. private static final int MAXIMUM_BACKLIGHT = android.os.PowerManager.BRIGHTNESS_ON;  

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

     报错内容如下:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. BRIGHTNESS_ON cannot be resolved or is not a field  

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

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. /** 
  2.  * Brightness value for fully on. 
  3.  * @hide 
  4.  */  
  5. 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中就不会再报错了。

HTML初步认识

HTML初步认识本篇博客给大家带来html最基础的东西,也就是初步认识html,打算从以下几个方面给大家介绍: 认识什么是纯文本文件txt HTML是负责描述文档语义的语言 HTML骨架和基本语法 可...
  • u010624986
  • u010624986
  • 2016年12月16日 23:46
  • 547

Java中注释/**@hide*/的初步认识

今天写一个调节系统背光亮度的时候,参考了Android中的Setting源码,在源码中有这么一段代码: ? 1 private static final ...
  • u010781856
  • u010781856
  • 2015年07月18日 15:48
  • 239

对C语言的初步认识

今天开启了C语言学习的第一节课。   一开始问了我们在现有的开发里有哪些语言: Java,c++,php,c#,.Net,python,shell,oc(ios系统用的语言) 面向对象的语言:...
  • TRLblog
  • TRLblog
  • 2016年11月19日 22:16
  • 272

源码中的@hide注释和{@hide}注释的差异

类或API是否开放是通过doc的注释{@hide}来控制的比如android.media.Metadata这个类就是android没有公开的类因为在frameworks\base\media\libm...
  • johnWcheung
  • johnWcheung
  • 2017年06月03日 18:34
  • 596

对JavaEE的简单认识

Java中存在各种各样的API, 也许正是这些API的制定使得Java能够像今天这样繁荣. API代表了标准, 开源则使各种API的实现百花齐放. 应该说, JavaEE是一系列为解决在企业应用开发...
  • wyc09
  • wyc09
  • 2010年01月20日 22:09
  • 565

对C语言的基础认识

软件都比较依赖硬件,所以程序的可读性和移植性会比较差。C语言就是一种为了提高系统软件的可读性和可移植性而出现的一种高级语言。兼具高级语言与低级语言的优点。 汇编语言和高级语言的区别:汇编语言可直接对硬...
  • meowgi
  • meowgi
  • 2016年10月31日 16:58
  • 1373

[译]Android注解--@hide

@hide
  • lihenair
  • lihenair
  • 2017年03月13日 19:49
  • 694

蓝牙的初步认识

一、.Bluetooth是目前使用最广泛的无线通讯协议,主要针对短距离的设备,基本上十米以内,而且是中间无阻碍的才能达到十米,如果中间有阻碍可能不到十米。 二、Bluetooth相关 API   ...
  • fang0521
  • fang0521
  • 2016年09月18日 10:38
  • 108

java-ObjectStream初步认识

import java.io.*; class ObjectStreamDemo {  public static void main(String[] args) throws Exception,...
  • z_Dendy
  • z_Dendy
  • 2013年09月18日 14:23
  • 1137

对于编码的初步认识

本人对编码的初步认识,经由本人总结如下:
  • kangvcar
  • kangvcar
  • 2016年10月10日 19:18
  • 411
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android基础——对Java中注释/**@hide*/的初步认识
举报原因:
原因补充:

(最多只允许输入30个字)