注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

时间记录器

记录我的Linux、Android学习之路

 
 
 

日志

 
 

乱七八糟的android笔记  

2011-09-07 20:37:47|  分类: Android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

(1)
在/build/core/pathmap.mk文件中
#
# A mapping from shorthand names to include directories.
#
pathmap_INCL :=
这个变量添加的是大部分头文件的路径信息,只要所要使用的(特别是全局使用的头文件)在这些路径下,头文件就可以被全局使用。
比如我们添加的ethernet.h在/frameworks/base/core/jni/android_net_ethernet_EthernetNative.cpp中被调用,则我们可以将ethernet.h
放在libhardware_legacy:hardware/libhardware_legacy/include这个路径下。
(2)
还是在/build/core/pathmap.mk中,如果要在frameworks/base下添加一个类似wifi这样的文件夹,要想他参加编译,必须作如下添加
#
# A list of all source roots under frameworks/base, which will be
# built into the android.jar.
#
# Note - "common" is included here, even though it is also built
# into a static library (android-common) for unbundled use.  This
# is so common and the other framework libraries can have mutual
# interdependencies.
#
FRAMEWORKS_BASE_SUBDIRS := \
 $(addsuffix /java, \
     core \
     graphics \
     location \
     media \
     opengl \
     sax \
     telephony \
     wifi \
     vpn \
     keystore \
     voip \
     ethernet \
  )
上面的ethernet就是添加的内容,这是一个文件夹,同时,这个文件夹的子文件夹还得符合这样的特性,列出来就知道了
frameworks/base/wifi/java/android/net/wifi/
frameworks/base/ethernet/java/android/net/ethernet/
frameworks/base/vpn/java/android/net/vpn/
frameworks/base/voip/java/android/net/rtp/
看出什么特点了吧。
frameworks/base/xxx/java/android/net/xxx/
但又并不是所有的文件夹的子文件夹都是这个样子,还要具体分析。
这里我添加的是frameworks/base/ethernet,在./java/android/net/ethernet/这几级的文件夹下没有任何其他文件(比如经典的android.mk这个很奇怪,存疑)。
在frameworks/base/ethernet/java/android/net/ethernet/下的文件有这几个:
EthernetInfo.aidl 
EthernetInfo.java 
EthernetManager.java 
EthernetNative.java 
EthernetStateTracker.java 
IEthernetManager.aidl
其中的*.aidl文件的功能具体看原文连接http://developer.android.com/guide/developing/tools/aidl.html
网上中文相关的解释http://android.blog.51cto.com/268543/537684这篇文章讲的好像很不错,待看。
大意就是
AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。
我们的IEthernetManager.aidl内容如下
package android.net.ethernet;

import android.net.ethernet.EthernetInfo;

/**
 * Interface that allows controlling and querying Wi-Fi connectivity.
 * {@hide}
 */
interface IEthernetManager
{
    int getEthernetEnabledState();
 
    EthernetInfo getConnectionInfo();
   
    boolean setEthernetEnabled(boolean enable);
}
这里声明了一个接口(上面的interface)是给外部线程调用的(不解)。
这里的int getEthernetEnabledState();其实是在frameworks/base/services/java/com/android/server/EthernetService.java中的,这里是如何才能引用呢?不解

或者可以理解为这个接口将本文件夹下的几个java文件抽象出一个接口引出,供需要调用他的线程什么的去调用。

 

 

 

 


 

  评论这张
 
阅读(549)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017