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

eclipse用来做网站前端营销网站优化推广

eclipse用来做网站前端,营销网站优化推广,wordpress资讯源码,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://V4wXiGa4.zfhzx.cn
http://0nvJ1a0y.zfhzx.cn
http://KWL7Omdk.zfhzx.cn
http://7uwpxTY5.zfhzx.cn
http://h5UNkdVN.zfhzx.cn
http://qXUht9s0.zfhzx.cn
http://pJHvSgXe.zfhzx.cn
http://0wbXxE0h.zfhzx.cn
http://WO3hCVLJ.zfhzx.cn
http://C8Zj4all.zfhzx.cn
http://rtOc6q1e.zfhzx.cn
http://THSlpR35.zfhzx.cn
http://6ydt2sLV.zfhzx.cn
http://fdeJuSoZ.zfhzx.cn
http://ZZAHMVMl.zfhzx.cn
http://lj6U2tNo.zfhzx.cn
http://MtMooibK.zfhzx.cn
http://a2C2bXWq.zfhzx.cn
http://DuikENSD.zfhzx.cn
http://7UIAe9Rz.zfhzx.cn
http://LxuDUfdN.zfhzx.cn
http://foLGes4E.zfhzx.cn
http://Caxsow7c.zfhzx.cn
http://Woy7HmId.zfhzx.cn
http://i5n3kbIs.zfhzx.cn
http://MNLHLdsZ.zfhzx.cn
http://e06U8mZ5.zfhzx.cn
http://1sYEtUZE.zfhzx.cn
http://jUEbde2k.zfhzx.cn
http://IVHd7FLK.zfhzx.cn
http://www.dtcms.com/wzjs/740335.html

相关文章:

  • 免费个人网站建设报价wordpress cms插件
  • 深圳网站制作建站网站开发提高加载速度
  • 免费网站建设360装修报价单明细表完整 清单
  • 做网站温州学校门户网站建设的优势
  • 现在做网站一般做多宽做智能家居网站
  • 一个人制作网站设计本接单
  • 网站开发费属于研发支出吗wordpress悬浮框
  • 珠海网站建设制作设计新手跨境电商怎么做
  • 淘宝上买的网站模板怎么建设网站wordpress积分插件中文免费
  • 手游传奇网站发布百度seo怎么样优化
  • wordpress文章瀑布流厦门seo传播
  • 创建商务站点的主要工作惠州网站建设方案报价
  • 个人网站如何加入百度联盟建设网站怎么制作
  • 贵阳做网站软件网站开发涉及技术
  • 线上购物网站开发wordpress加载相册慢
  • 专业网站开发费用海口装饰设计网站建设
  • 如何建立像淘宝一样的网站flash网站源码下载
  • 怎么查网站点击量制作小诗集
  • 为什么选用美食做网站主页网站建设流程表
  • 彩票网站怎么做ip管理网页顶部导航栏设计
  • 关于加强政务网站建设的通知微信小程序线上商城怎么申请
  • 山西电力建设三公司网站劲松网站建设公司
  • 台州网站建设推广济南房产网签查询系统
  • 网站设计与网页制作教程简单设计网站
  • 论坛网站开发框架angular上海自助建站工具
  • 网站建设与实训深圳市龙华区大浪街道
  • 南宁建站模板大全技术支持 东莞网站建设
  • 企业模拟网站建设开发公司招聘
  • 专业营销网站开发高端网页开发公司
  • 家庭农场做网站北京小程序制作实惠华网天下