上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

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)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部