2018年基于Djinni的跨平臺C++移動開發的實踐分享.pdf

編號:95412 PDF 40頁 87.10MB 下載積分:VIP專享
下載報告請您先登錄!

2018年基于Djinni的跨平臺C++移動開發的實踐分享.pdf

1、使用C+開發的AppRingCentralGlip:TeamChat歡迎前往歡迎前往AppStore or GooglePlay下下載體驗載體驗移動開發薪資排行榜5|2018 RingCentral,Inc.All rights reserved.基于djinni的跨平臺App開發的實踐分享蔣偉 Jacob JiangRingCentral Collaboration Mobile ManagerLeading the WorldWinning the CloudA Gartner Magic Quadrant Leader for UCaaS 2017,2016&2015Unified Co

2、mmunication is New FutureLeader in UCaaS from Silicon ValleyRingCentral R&D center in Xiamen100 Most Trustworthy Companies inAmerica 2016&2017International Business AwardsTop Cloud Communications ProviderListed on the NYSEGlip 團隊協作平臺團隊協作平臺視頻會議、文件分享、評論Glip Mobile產品需求產品需求團隊一站式協作溝通平臺,無縫集成emailPBX業務多,Cl

3、oud電話隨時可用,在線傳真高可用性、穩定1234Glip Mobile產品需求協作平臺產品需求協作平臺lNative方式各寫一遍?l是否需要用跨平臺技術?l完全自定義的跨平臺還是部分跨平臺?原生界面原生界面+不想寫不想寫2 2遍代碼遍代碼l首先決定是否需要用跨平臺技術?首先決定是否需要用跨平臺技術?是是l完全自定義的跨平臺還是部分跨平臺?完全自定義的跨平臺還是部分跨平臺?部分部分l前端前端界面跨平臺還是底層邏輯跨平臺?界面跨平臺還是底層邏輯跨平臺?底層底層跨平臺方案非常多跨平臺方案非常多Djinni介紹介紹接口定義語言 IDL自動生成橋接代碼Java Proxy class,JNI Mars

4、haling,Java C+(via JNI)Obj-C Interface,Obj-C C+(via Obj-C+)C+abstract base class開發實現C+implementationdemoGenerated Code iOS&Android Generated Code C+Handwrite Code C+Generated Code iOS&Android-CallbackGenerated Code C+-CallbackHandwrite Code iOS&Android-Callback編譯前提1.添加新增的文件、代碼至工程2.添加djinni依賴庫3.Compi

5、leBoolFixed-Width Integers:i8,i16,i32,i64Double-Precision Floating-Point:f64StringBinarylist,set,mapoptionalDateDjinni支持的主要數據類型支持的主要數據類型Djinni編譯工具iOS&OS X:LLVM 9.0(Xcode 9.0)Android:Clang 3.8,NDK r14b(Android Studio)C+11AndroidiOSCoreLibGlip Mobile的架構的架構lUI-platform specific(Java or Obj-C)lLanguage

6、bridge(JNI or Obj-C+)lBusiness logic(C+)Native UI+業務邏輯復用業務邏輯復用Android(Java/Kotlin)iOS(Swift/Objective-C)Language bridge(JNI or Objective-C+)UIController/ViewModel(C+)Biz logic(C+)Core Foundation(C+)StorageNetworkThreadDatabaseSpecified platform feature3rdparty libraryC+LibrariesWebsockets,openSSL,li

7、bcurl,sqlite,WebRTC,phoneparser,坐享大量優質穩定的庫好處功能跨平臺一致(bug也是)高性能Network StateApplication StateDevice ContactDevice CalendarPlatform Specific libraryHttp ClientLogFile StorageThreadHttpliOS AFNetworkinglAndroid HttpURLConnectionLogliOS NSLoglAndroid LogcatlLog4CPP write log fileThreadliOS NSOperationlAn

8、droid ThreadPoolExecutorPresence 例子例子無需定制邏輯 公共邏輯優先定義層間接口 Git引用submodule關系,native/corelib同時開發 Android直接使用編譯庫,直接收益工作流工作流收益收益l整體開發效率提升了2倍l部門間溝通效率提升l代碼質量更穩定l模塊化、編譯速度快Swift/Obj-C 11WKotlin/Java 10WC+4W 業務代碼,頭文件8W代碼量節約8W行A Gartner UCaaS Magic Quadrant Leader.Again.RingCentral positioned furthest for compl

9、eteness of visionBundle resource pathNetwork(background session)Thread(Thread is different on iOS/Android)App background states平臺差異性平臺差異性大量的djinni頭文件、*.mm文件反復引用,編譯時間太長4分鐘-10秒編譯時間優化編譯時間優化啟動庫太龐大,啟動時間占用比例大動態庫轉靜態庫處理C+宏定義靜態性能優化性能優化 語言層面沒有block支持,需要寫大量delegate Share_ptr強引用,導致delegate與ViewController互為強引用 類文件生成較多 Djinni類無法支持繼承短板短板回顧回顧為什么選擇使用C+跨平臺djinni工具的使用使用djinni的產品架構優缺點跨平臺C+移動App開發效率高、速度快、不犧牲原生界面體驗枯燥無味的接口編寫工作被djinni取代一次開發 多平臺復用總結總結

友情提示

1、下載報告失敗解決辦法
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站報告下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。

本文(2018年基于Djinni的跨平臺C++移動開發的實踐分享.pdf)為本站 (云閑) 主動上傳,三個皮匠報告文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知三個皮匠報告文庫(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。
客服
商務合作
小程序
服務號
折疊
午夜网日韩中文字幕,日韩Av中文字幕久久,亚洲中文字幕在线一区二区,最新中文字幕在线视频网站