当前位置: 首页 > news >正文

北京app建设 网站开发公司织梦网站seo

北京app建设 网站开发公司,织梦网站seo,广州建筑公司实力排名,wordpress用户名u开头我一直觉得#xff0c;现代计算机不是一门科学#xff0c;起码快算不上一门理科科学。上上下下全是人造#xff0c;左左右右全是生意#xff0c;用管理学#xff0c;经济学去学计算机#xff0c;也许更看得懂很多问题。HAL就是一个典型例子。 传统Linux绕开了微软的霸权…我一直觉得现代计算机不是一门科学起码快算不上一门理科科学。上上下下全是人造左左右右全是生意用管理学经济学去学计算机也许更看得懂很多问题。HAL就是一个典型例子。 传统Linux绕开了微软的霸权但是又面临GPL要开源的尴尬。谷歌为了迎合硬件资本家封闭垄断发财的愿望所以搞了HAL这个概念。将原来在内核态的驱动移了大部分核心内容到用户态这样就可以封闭可以垄断赚钱。然后因为HAL这玩意只在安卓上有配合了安卓的硬件公司反过来又被谷歌绑架这样一环套一环吃钱。一开始用Java吸引广大的Java生态码农进场。现在又搞Kotlin想把码农套牢。搞这几出是真的只是科学吗当然不是归根结底大部分还是生意。 我对安卓接触不久有些理解不一定对大家用批判的眼光看就好。有什么错误还请指正。 一 安卓硬件接口的演化 传统Linux怎么调用硬件就是ko。。。几个函数搞定。Android复杂了很多所以整理一下。 在安卓中除了上面讲的HAL还有一个就是Framework这个就是app的framework要理解安卓驱动层这两点绕不开。为了适配framework安卓把硬件是作为服务service来使用。在Android中这种结构也进化了很多代。 1 首先是传统HALLegacy HAL 在内核8.0以前使用。用户态的so貌似保存在/system/lib64这个版本是直接读取硬件so比较原始暴力。 App-Service-AIDL-Server-JNI-HAL so-kernel driver 2 现代HALConventional HAL 使用Iibhardware来管理so同时下层的驱动使用一个单独的分区so全部集成到vender.img和system解绑。要找寻so通过libhardware这个中间层。编译时要提供一个Android.bp文件。 App-Service-AIDL-Server-JNI-Iibhardware-so(vender.img) 3 HIDL 在安卓8之后开始使用HIDL总的来说就是将HAL封装成服务完全就是rpc的玩法。 HIDL编译后会生成Android.bp这个有时间再看看。最后会有两个so一个so放在system分区一个impl.so放在vendor分区以此实现framework和驱动服务的分离。客户端使用前者服务端使用后者。服务端包含impl.so之后会生成一个可执行程序就可以作为一个service单独运行。客户端包含了so可以直接调用服务。 分为直通式和绑定式。有大神说直通式就是虽然使用HAL但还是在一个进程绑定式是使用HAL但是数据通过Binder转发上面说的应该就是绑定式。直通式和绑定式也都是HAL生成的代码中控制的。比如 extern C IXXX* HIDL_FETCH_IXXX(const char* name); AIDL和HIDL的中间就是安卓的framework。 App-AIDL-Service-HIDL-HAL Service-so(vender.img) 示例1大概就是下面这种结构 Power.c往下是通过systemcall这部分代码是封在so里面的。 PowerManagerService.cpp是封装下层的so然后对上提供HIDL的接口。 PowerManagerService.java对下调用HIDL的接口对上提供AIDL的接口。 DisplayPowerState.java调用AIDL的接口。 大概是这样。 示例2下面这张图更细一点 4 全AIDL。AIDL for HAL andorid11开始。 App-AIDL-HAL Service-so(vender.img) 二 看一下AIDL和HIDL。 最新的HAL主要涉及到的主要是两个接口AIDL和HIDL。 首先是AIDLAndroid Interface definition language。看资料说是android中两个app交互的IPC方式。首先IPC有很多种管道域套接字message共享内存问题是谷歌为什么要搞出来一套新的呢 从一个AIDL的例子可以看到 // IMyRemoteService.aidl interface IMyRemoteService {int getValue();void setValue(int value); } 一边使用 private final IMyRemoteService.Stub mBinder new IMyRemoteService.Stub() 另一边使用 mRemoteService IMyRemoteService.Stub.asInterface(iBinder); 在接口中主要定义的还是函数也就是说比管道这些更上层更适合Java的调用。就算上层函数调用其实也很多方式比如COMsoaprpc都是干这事的。安卓应该还是用binder进行统一管理了吧毕竟是一个单独的服务。 HIDL 主要还是提供底层cpp驱动和上层java的通信。hal文件定义如下 // ILedService.hal package android.hardware.led;interface ILedService {int getLedState();void setLedState(int state); }; 它的C语法稍怪 #include android/hardware/led/1.0/ILedService.h #include hidl/LegacySupport.husing android::hardware::led::V1_0::ILedService; using android::hardware::Return; using android::hardware::Void;class LedService : public ILedService { public:LedService() {}Returnint32_t getLedState() override {return mLedState;}//略 };int main() {return android::hardware::configureRpcThreadpool(1, true) android::OK android::hardware::registerAsService(new LedService()) android::OK? 0: 1; } Java侧的倒是差不多。 在Binder的使用中Server端继承BnInterface, Client端继承BpInterface。我接触的工程中一边叫做BP侧那么应该就是app侧BN侧那么就是服务端了。 最后写完的service可以通过rc文件作为一个系统服务。 参考 针对 Android 进行开发  |  Android 开发者  |  Android Developers https://source.android.com/docs/core/architecture?hlzh-cn https://source.android.com/docs/core/architecture/aidl/aidl-hals?hlzh-cn AIDL for HALs - Code Inside Out AIDL for HALs实战_hidl会被aidl代替-CSDN博客 Android HIDL 介绍学习和实战应用-CSDN博客 AIDL for HALs实战_hidl会被aidl代替-CSDN博客 HIDL 原理及使用详解-CSDN博客 Android上层与驱动交互完整篇三HIDL服务_android.bp hidl_interface-CSDN博客 Android HIDL学习2 ---- HelloWorld - 简书
http://www.w-s-a.com/news/540624/

相关文章:

  • 大学网站 作风建设专题汽车配件外贸出口公司
  • 东莞做网站系统购物网站建设精英
  • 建设vip网站相关视频网站营销建设公司
  • 微站直播平台杭州seo按天计费
  • seo 新旧网站 两个域名福州设计网站建设
  • 如何做网站客户端如何做网络营销网站
  • 苏州网站建设制度打鱼网站建设
  • 瓜子二手车直卖网上海小红书seo
  • 天津中小企业网站制作珠海做网站的
  • 网站排名影响因素最牛的科技网站建设
  • 长春网站建设公司怎么样电商网站建设与开发期末考试
  • 品牌网站建设搭建国内外网站建设
  • 辽宁人社app一直更新整站seo定制
  • 兰州网站建设论坛装修品牌
  • 云南省城乡住房与建设厅网站用什么网站可以做电子书
  • 自己电脑怎么做网站服务器吗0基础如何做网站
  • 做网站的股哥网络整合营销方案策划
  • 网站你懂我意思正能量晚上唯品会网站开发费用
  • 网站认证金额怎么做分录网页无法访问是怎么回事
  • 樟木头建网站的wordpress自适应吸附菜单
  • 番禺网站设计威海微网站建设
  • 新乡网站建设服务网站建设的点子
  • 赛罕区城乡建设局网站什么是新媒体运营
  • 松原企业网站建设设计素材网排名
  • 网站建设是那个行业广东公司排名
  • 制作网站要多少钱seo是如何优化
  • 求个网站2020急急急做金融网站拘留多久
  • 网站后台管理系统怎么进seo网络推广外包公司
  • 中山市 做网站网站建设如何上传文件
  • 网站呢建设公众号制作要求