【CSDN现场报道】10月14日-16日,“ 2015移动开发者大会· 中国 ”(Mobile Developer Conference China 2015,简称MDCC 2015)在北京新云南皇冠假日酒店隆重举行。本次大会由全球最大中文IT社区CSDN和中国最具关注度的全方位创业平台创新工场联合主办,以“万物互联,移动为先”为主题,邀请国内外业界领袖与技术专家公论移动开发的热点,在实践中剖析技术方案与趋势。
10月15日下午,平台与技术-Android专场继续进行,腾讯Android工程师胡凯,个推高级技术总监董霖,快的打车移动端架构师吴更新(Trinea),android-gems.com作者、前阿里巴巴工程师廖祜秋和Marvell高级研发经理陈家林五位一线专家,分别针对Android应用开发工作中五个方面的重要议题——内存优化、远程问题诊断和监测、图片缓存源码解析、React Native for Android以及应用安全保障等分享了各自的经验 。
腾讯Android工程师胡凯:Android内存优化的5R法则(PPT下载地址)
胡凯首先介绍Android内存管理中的内存回收、内存泄露、内存分析等基础知识,其目标是更多的内存空间,和尽量减少GC行为。胡凯认为,可以通过5R法则来实现这两点。
腾讯Android工程师 胡凯
个推高级技术总监董霖:Android远程问题诊断和监测(PPT下载地址)
董霖首先谈到在LBS场测过程中,要认识到远程日志调试的重要性并思考如何解决这个问题。 一个合格的应用程序发版需要经历Demo内测、FA场测和灰度升级,最后才能在市场上架。在此过程中Trac或者Jira问题不断出现,紧接着董霖谈到需要此时手机的两点刚需:一是开Log,看Log;二是看屏幕,截屏。除此以外,也需要通过手机看“关于”信息,或者执行一些Shell命令。现有的日志管理工具如Logstash和Graylog2,虽然综合评估Graylog比较专业,但这些都是针对服务端日志管理,没有支持移动平台的工具。此外仅能够进行Crash分析是远不够的,同时也需要解决非Crash的程序逻辑问题。董霖解释到解决方法仅需简单的4步:确定设备、打开日志、上传日志、分析日志。接下来他主要讲解了Logful架构,其中架构中自行开发的部分是LogfulSDK、LogfulWeb、LogfulAPI。使用此架构可以对日志进行广泛埋点。
个推高级技术总监 董霖
他详解了Demo案例,首先初始化、查看日志记录,例如调查日志模板;在Logfulweb平台上利用Dashboard、管理工具等工具,根据关键字搜索或者type搜索日志,进行日志文件分析。他采用了漏洞分析分方式,得到传统的统计SDK,无法精确到任务级别进行汇总统计,需要借助详细日志分析。LogfulSDK架构分为三层,底层是Logservice,中层是Logcontroller,上层是LogAPI。在日志级别以及资源评估方面均有自己的创新点,并且Logful架构具有很高的并行可扩展性。他总结到该架构的特色功能:截图支持、日志预录、别名支持、日志模板、数据监控以及核心功能:Android/iOS支持、日志加密存储和上传、日志检索、实时日志开关、灰度日志开关、Wifi下上传。最后董霖谈到将在11月中旬对Logful架构进行开源。
快的打车移动端架构师吴更新(Trinea):Android开源项目源码解析之图片缓存对比(PPT下载地址)
吴更新首先介绍选择开源项目的三大优势,可以实现开速开发,站在巨人的肩膀上,和借助社区的智慧,以及选择开源项目时需要考虑的因素,包括:1.Star、PR、Issues、维护;2.文档;3.原理;4.业务场景。
图片缓存目前的主要开源项目包括Imageloader,Picasso、Glide和Fresco,其中Fresco还是0.7版本。他分享了前面三个比较成熟的库的流程、设计和特性对比,涵盖 RequestManage、Engine、 GetDatainterface、Displayer、Decode、Encode、Processor等重要概念。
快的打车移动端架构师 吴更新(Trinea)
他介绍,这些项目的共同优点是:使用简单;可配置都高、自适应程度高;多级缓存;支持多种数据源。单独来说,Imageloader的优点是:支持下载进度显示;可以在View滚动中暂停图片加载;默认实现多种内存缓存算法;支持本地缓存文件名规则定义。Picasso的优点是:自带统计监控功能,有利于节省流量;支持优先级处理;支持延迟到图片尺寸计算完成加载,即加载完成之后再显示;支持飞行模式、并发线程数根据网络类型而变;“无”本地缓存。Glide的优点包括:除了图片缓存,还支持媒体缓存;支持优先级处理;与ActiveFragment生命周期一致,支持trimMemory;支持okhttp和Volley,但与Picasso不一样的是,有自己的本地缓存;内存友好。
总体来说,功能上,Glide最为出色。但代码理解上,Picasso更胜一筹,代码量比较少,设计清晰,而Glide代码量很大,概念众多。对于正常使用,他建议,优先用Picasso,因为Picasso源码解决会比较快,Glide会更加耗费精力。
android-gems.com作者、前阿里巴巴工程师廖祜秋:React Native for Android(PPT下载地址)
廖祜秋首先谈到了JavaScript,其中有:JSC(JavaScriptCore)、NPM(Node Package Management)、Module、JSX Synax。 然后谈到了React Native开发过程时--从H5/JS封装到Reactbride,再到React Native。快速启动时,非常简单,仅需一句操作命令就可。在服务器调制(Debug Server)时,APP和Server相互调度资源。
android-gems.com作者、前阿里巴巴工程师廖祜秋
谈到两个平台运行Demo时,iOS首先是在Xcode中打开工程,然后再运行。Android运行方式:一是模拟器;二要求5.0以上版本以及adb反向接口;三是配置调试服务器。数据包分发方面,iOS相比Android更为简单。
为什么我们需要React Native?他从以下几点进行了解释:具有Native的外观和感觉、可接受的性能、代码的复用性很强、能够进行快速的开发和部署。他解释到React?Native的核心包括:ReactBridge、JavaScriptModule、NativeModule、Native UI Components。你可以利用其设置全局变量,传递参数。谈到代码复用时,这里具有很多优势:一是UI复用;二是模块复用。对于热部署:目前的Apphub,能快速更新本地应用程序,但目前仅支持iOS系统。
在性能方面,首先是性能来源问题:发展模式(dev=true)、慢导航转换、ListView的初始化太慢或者对较大的列表很难访问。使用React Native而非基于WebView工具的有令人信服的点:一是实现60 FPS;二是使得你的应用程序更加像React。
在谈到React Native为什么目前不能成为主流问题时,他解释道:一是跨平台测试问题;二是iOS和Andriod代码库融合问题。最后他希望到一个工程师应该全能,不局限某种语言,并且应具有创造力且能够认真努力工作。
Marvell高级研发经理陈家林:Android应用安全检测(PPT下载地址)
陈家林的分享包括三点:安卓应用典型问题分析,第二如何分类安卓应用安全,第三如何找到应用安全测试工具。首先他列举并分析了几个应用典型问题。
Marvell高级研发经理 陈家林
陈家林认为,安全的关键是定义边界,他将Android应用安全分为本地接口安全、本地存储安全、传输安全、服务器安全和其他安全等5个大类,29个测试点。
最后他分享了如何找到应用安全测试工具这个问题的见解,具体方法是寻找测试工具、建立测试集合、量化测试工具,并分享了三个工具的玩家:阿里聚安全、腾讯金刚、360捉虫助手。利用开源来丰富这个集合,AuditDroid通过提供测试用例代码来协助开发者理解安卓移动应用安全问题。这里有29个测试点,80个测试用例。用现有的测试工具对这29个测试点的覆盖率、检出率、误报率进行测试并得出了结论。
更多精彩内容,请关注新浪微博:@CSDN移动,图文直播专题:2015移动开发者大会。