native层 安卓_新增LED设备从上层到底层理解安卓架构之APP篇

407e3a84b232f0329313a8a7cf60ed71.gif

点击上方蓝字关注我哦~

经过驱动、HAL、JNI、SERVICE一层一层精心浇筑,新增的LED设备调用接口终于可以被APP调用了。举个不恰当的比喻,就好像建造一座海洋石油钻井平台,从海底一段一段钢架、油管连接起来,最终在海面上建造出了一个平台(面向应用层的接口),从平台的接口(油管)就可以调用海底的石油了。现在就剩下制作一个APP去调用这个接口啦。

01

创建TestLedMangager.jar

由于led的这个接口是我们自己建立的,原来的安卓并没有,在as的工程中虽然导入了对应安卓版本的sdk库,但是库里并没有我们定义的这些接口函数。为了使得工程编译不报错,我们需要创建一个空的TestLedMangager.jar,内部的函数名与framework中的TestLedManager.java完全一致,但是不需要实现。APK工程编译时,调用jar中的函数,实际在设备上运行时,调用的是TestLedManager.java内的同名真实函数。

(1)创建一个JavaLibrary。New->New Module->选择Java Library

d0420eb97a9676a9739dc057f131bc6a.png

(2)包名填 android.app,LibraryName:TestLedManager,Java class name: TestLedManager把安卓工程里面的函数名都拷过来,函数内容留空。

f0348109f326b833d86ee477f033b132.png

TestLedManager.java的内容如下:

package android.app;public class TestLedManager {public TestLedManager() {}public void SetLed1(int on) {}public void SetLed2(int delay) {}}

(3) 编译生成TestLedManager.jar

92a4248eaeb984969c5cd4a20698c9b1.png

生成的路径为APK工程/TestLedManager/build/libs。

f07a292077daf61313866371072fefb1.png

02

导入jar并调用接口

(1)导入jar。将/TestLedManager/.jar拷贝到需要使用此接口的apk工程的lib目录下。

(2)As界面左侧的在libs下面TestLedManager.jar,右键选择AddAsLibrary

bf65bd63b1f2f8970317cac246c4efce.png faad1b7032150b8fc6b9e12484baede9.png

(3) 调用接口

创建EditText和两个按钮,分别调用两个led的操作接口。

8216a90d8248a7a4b32ba5476e378553.png
TestLedManager tlm;tlm = (TestLedManager)mContext.getSystemService("TestLed");tlm.SetLed1(1);//led1开与关tlm.SetLed2(freq);//led2设置闪烁频率

至此,我们通过一个简单的led灯控制demo,描述了安卓的层次,以及他们之间的关联。安卓就是由无数条这样由底层到上层的线,组合成了一个广阔的开放式平台,应用开发者在这个平台上开发出丰富多彩的APP。

各个层面的开发者,只需要大致了解层次的构成后,专注于本层次的开发即可。例如驱动开发工程质量,关于kernel层的驱动开发以及与HAL层的接口,framework系统开发工程师详细的了解framework中的各个组件,同时需要了解HAL的调用以及对应用层的接口,APP开发工程师熟悉安卓提供的sdk,并开发出最终面向用户的应用。

除此之外进阶的开发者还要有能力将一条线从底层到上层捋出来。

/ The End /

本文系嵌入式案例Show原创出品,未经许可,请勿转载。

64564266d7f492c61f5b1affece6d0c2.gif

扫码关注我们

看更多嵌入式案例

a6d72c76e0d48efba635cc5f5d28b13f.png

喜欢本篇内容请给我们点个在看

17229cf485ff3e13beb12ff9015f86e8.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值