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

做网站排名需要多少钱江苏疫情最新消息

做网站排名需要多少钱,江苏疫情最新消息,那个网站做粮油批发APP,wordpress搭建教程背景描述 本篇文章是一个Android.bp中选择性引用某个模块的实例。 如果是Android.mk编译时期,在编译阶段通过某个条件判断是不是引用某个模块A, 是比较好实现的。Android15使用Android.bp构建后,要想在Android.bp中通过自定义的一个变量或者条件实现选…

背景描述

本篇文章是一个Android.bp中选择性引用某个模块的实例。

如果是Android.mk编译时期,在编译阶段通过某个条件判断是不是引用某个模块A, 是比较好实现的。Android15使用Android.bp构建后,要想在Android.bp中通过自定义的一个变量或者条件实现选择构建有点难,主要是因为soong构建系统将构建逻辑交由go实现,Android.bp中静态配置构建目标。

接下来以一个简单的例子说明如何修改Android.bp达到简单的条件编译效果。

具体描述下问题背景

1.Camera Hal引用一个硬件相关模块A做图像的后处理.

2.A模块是有对应的vendor hal的ndk层库

3.当前要做Android系统升级,A模块仓库还没ready,想用纯软件替代方案开始Camera Hal升级。

4.Camera Hal对这个A模块引用的头文件是,soong根据aidl接口编译生成的,当前A仓库还没加到系统集成中,所以引用的头文件,库文件,Android.bp中导出的模块都没有。

5.后续A模块ready后,Camera Hal要引用,软件替代方案只是临时替补。

实现思路

1.将A模块封装一层(称为A_wrapper),然后引用A_wrapper。A_wrapper通过enabled属性控制。

2.Android.bp中传一个宏到.cpp中,.cpp使用这个宏预编译A模块相关数据结构和接口

3.Camera Hal代码实现中对A模块接口进行封装(称为AWrapper),并在AWrapper.h中定义必要的数据结构和接口,以使编译成功。

具体修改

需要改三个位置:

  1. Android.bp中修改,构建层面将vendor.hardware.a-V1-ndk封装成vendor.hardware.camera.hwprocess。
  2. EmulatedSensor.cpp中,不直接调用A模块接口而是改成调用AWrapper。
  3. AWrapper.h中定义必要的A模块接口(必要是因为A模块数据结构,接口等引用的比较零散,为了.cpp尽可能少改动,或者改动收敛而搬一些A.h中的数据结构或者接口定义)
  4. AWrapper.cpp中实现对A模块接口的封装,同时使用#ifdef CAMERA_ENABLE_HW_PROCESS &#endif预编译将A模块接口(和步骤3呼应)处理下,以保证能编译过。

Android.bp中修改如下,

//aosp15/hardware/google/camera/devices/EmulatedCamera/hwl/Android.bp//添加a wrapper层
+a_wrapper_src = ["vendor.hardware.a-V1-ndk",]
+//a_wrapper_src = []  //用于兼容不引用a模块
+cc_library_static {
+    name: "vendor.hardware.camera.hwprocess",
+    whole_static_libs: a_wrapper_src,           //注意这里要用whole_static_libs不能用static_libs,因为后者可能会优化导致封装出来的vendor.hardware.camera.hwprocess中找不到某些符号
+    export_static_lib_headers: a_wrapper_src,   //这里导出a模块的头文件
+    vendor:true,
+    shared_libs: [                              //这里使a模块依赖的库
+        "libbase",
+        "libutils",
+        "libhardware",
+        "libbinder_ndk",
+    ],
+}//修改引用a wrapper
static_libs: ["android.hardware.camera.common@1.0-helper","libgooglecamerahwl_sensor_impl",
-    "vendor.hardware.a-V1-ndk",
+    "vendor.hardware.camera.hwprocess","libgooglecamera_process",
],cc_library_static {name: "libgooglecamera_process",owner: "google",proprietary: true,host_supported: false,srcs: ["a_wrapper.cpp",         //代码中对a模块接口的封装"image_processor.cpp",],header_libs: ["libgui_aidl_headers","arm_gralloc_headers",],static_libs: [
-        "vendor.hardware.a-V1-ndk",
+		 "vendor.hardware.camera.hwprocess",],shared_libs: ["libui","libdmabufheap",],include_dirs: ["system/media/private/camera/include","frameworks/native/libs/ui/include/","frameworks/native/include/","vendor/google/hardware/modules/gralloc/android/src","system/memory/libdmabufheap/include","external/libyuv/include",],export_include_dirs: ["."],cflags: ["-Werror","-Wextra","-Wall",
+        "-DCAMERA_ENABLE_HW_PROCESS",            //这里实现Makefile中的-DSymbel效果],target: {android_arm64: {enabled: true,},android_x86_64: {enabled: false,},},
}

如上,Android.bp是按引用A模块构建google camera hal。如果不引用A模块修改上述Android.bp中:

  1. 注掉a_wrapper_src = ["vendor.hardware.a-V1-ndk",] 使用a_wrapper_src = []
  2. 注掉 "-DCAMERA_ENABLE_HW_PROCESS"

虽然实现了选择,但是不够灵活,后续出一个优化版本。

http://www.dtcms.com/wzjs/512184.html

相关文章:

  • wordpress 下载模板站电商平台有哪些?
  • 工信部网站域名备案查询系统找小网站的关键词
  • 免费毕业设计网站建设河北seo基础教程
  • 多语言网站建设价格免费网络推广软件
  • 设计模板网站长春模板建站代理
  • php购物网站开发实例源码广州新闻播报
  • 鞍山做网站或百度推销广告一年多少钱
  • 如何快速建立一个网站东莞百度推广优化排名
  • 怎么利用网站做产品推广女生seo专员很难吗为什么
  • ui设计师面试问题seo网站建设优化
  • 网站图标可以用ps 做吗在线网站seo优化
  • 快速网站备案多少钱产品推广软件有哪些
  • 嘉兴网站建议搜索引擎营销是什么
  • 页面设计布局谷歌推广和seo
  • wordpress数据库替换网址免费seo排名软件
  • 十大电商代运营排名信息流优化师简历怎么写
  • node.js做直播网站百度网址大全旧版安装
  • 广东住房城乡建设厅网站首页网站排名优化专业定制
  • 品牌策划流程广州seo推广优化
  • 武汉做网站哪里好优化服务内容
  • 工体做网站的公司怎么做关键词优化排名
  • 网站公司建设网站收费模块谷歌商店下载
  • php网站开发设计论文软文案例短篇
  • 免费制作logo的软件有哪些网络优化的工作内容
  • 做企业网站要多长时间贵阳网站建设
  • 网站群建设标准本周新闻热点
  • 常用的网站开发技术有哪几种百度手机助手app
  • 专门做房地产设计的图片网站seo专业推广
  • ie网站建设7月新闻大事件30条
  • 河北做it的网站培训总结