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

如何别人看自己做的网站影视网页制作素材

如何别人看自己做的网站,影视网页制作素材,注册公司验资需要多少钱,江苏营销型网站公司我一直觉得#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) 4 全AIDL 10内核开始。 App-AIDL-HAL Service-so(vender.img) 来自ASOP官网的图。 二 看一下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实战_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.pierceye.com/news/301625/

相关文章:

  • 腾讯网静态网站建设西宁网站建设公司排行
  • pc网站优势买完网站怎么建设
  • 网站设计与制作用什么软件外包加工网官网下载安装
  • 商城网站设计企业建一个o2o网站
  • 营销型网站创建php源码资源网
  • 优秀设计师网站在上海做兼职去哪个网站搜索
  • 教育行业网站建设房屋3d立体设计软件
  • 海珠免费网站建设php网站系统
  • 建设银行网站信息补充施工企业奖惩制度范本
  • 做拍卖网站多少钱办公室装修铺哪种地板
  • 国外网站有哪些平台网站系统建设需要什么资质
  • 做网站 就上凡科网做盗版网站会坐牢吗
  • 百事通网做网站做网站公众号多少钱
  • 影视作品网站开发与设计php做网站有哪些好处
  • 寻模板网站源码《基层建设》官方网站
  • 做网站龙岗深圳市网络seo推广平台
  • 公司资质查询官方网站网站建设开题报告
  • 桐城网站开发网站制作器手机版下载
  • 校友网站 建设网站开发都是使用框架吗
  • 手机网站字体大小规范优秀网站
  • 用动物做网站名称建设个人网站的策划书
  • 深圳网站开发公司宝网建设网站需要哪些素材
  • 网页设计需要学什么学历南宁seo服务公司
  • 网站开发学习未来做那个网站能致富
  • 建设厅科技中心网站免费网站怎么做出来的
  • 做一网站东莞网站建设
  • 电商网站建设需求网站开发培训排名
  • 厦门建设局网站城市建设郑州百度分公司
  • 长春火车站在哪广州冼村小学
  • 网站开发上海工资dedecms模板自适应