android carlife 源码,CarLife开发总结
CarLife開發(fā)總結
百度CarLife是百度推出的車聯網解決方案之一,目前分為前裝集成與后裝安裝兩種方式提供
準備資料
前裝項目申請:http://carlife.baidu.com/carlife/caroem/myproj
前裝項目申請完成后,得到一個百度渠道號與集成資料
后裝源碼地址:https://github.com/ApolloAuto/apollo-DuerOS/tree/master/CarLife-Android-Vehicle
集成CarLife庫
前裝項目申請成功后,百度會提供一個CarLife動態(tài)鏈接庫(libcarlifevehicle.so)的源碼與使用說明,動態(tài)庫的主要功能是CarLife中各數據通道(command channel, video channel, media channel, tts channel, vr channel, control channel)的建立和數據收發(fā)(包括數據包的報文封裝和解析過程)。
將庫集成進Android編譯環(huán)境,首先需要根據Makefile文件配置Android.mk
LOCAL_SRC_FILES :包含utility,protobuf,modules,libwrapper,core中的所有.cpp .cc為結尾的文件。 需要注意的是,protobuf中的.cc文件,需要修改為.cpp為后綴。
LOCAL_C_INCLUDES : 需要包含protobuf庫中的引用h文件,stlport中的引用h文件。
LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI 指定google protobuf屬性
CarLife的依賴庫有protobuf 2.5.0, stlport.
stlport的依賴在android 6.0以下版本中,源碼在externel中,被集成進系統,編譯后會生成libstlport.so編譯,此時編譯libcarlifevehicle.so時,只需要通過LOCAL_SHARED_LIBRARIES += libstlport即可。 而在6.0版本以及以上版本中,可以通過LOCAL_LDFLAGS := prebuilts/ndk/current/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a 來指定編譯時的依賴。
CarLife架構設計
開發(fā)總結
CarLife的開發(fā)完成,主要有以下幾個工作點:
CarLife lib庫的集成:lib庫主要的功能就是提供CarLife服務數據通道的建立,數據報文的封裝與解析,我們需要使用Android.mk文件將其加入Android系統的交叉編譯環(huán)境中。
Usb通信: CarLife的握手與通信主要是通過Android的AOA方式來進行,具體通信方式已經單獨作為介紹: USB開發(fā)------android AOA開發(fā)
CarLife視頻顯示: CarLife主要是采集手機端的視頻流,然后通過USB以H.264的方式發(fā)送到車機端,車機端針對H.264進行硬解碼播放,播放主要用MediaCodec, 具體使用方式已經單獨作為介紹 android使用MediaCodec實現異步視頻編解碼
CarLife音頻播放: CarLife的音頻數據是以PCM流的形式發(fā)送到車機端,因此車機端只需要使用AudioTrack創(chuàng)建對應的配置來播放即可,注意音頻流數據的字節(jié)序大小端是以小端的方式存在的。
總結
以上是生活随笔為你收集整理的android carlife 源码,CarLife开发总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团队项目课堂展示
- 下一篇: 计算机 黑屏 显示桌面,电脑开机后显示桌