https://www.gravatar.com/avatar/7a0c24f697ea1587001c36d00039b60f?s=240&d=mp

五年内将取代安卓?来聊聊谷歌新系统Fuchsia

(原标题:Project ‘Fuchsia’: Google Is Quietly Working on a Successor to Android)

http://7xq9ge.com1.z0.glb.clouddn.com/2018-07-20-15320548229338.jpg

网易科技讯 7月20日消息,据国外媒体报道,两年多来,谷歌一个秘而不宣的工程师团队一直致力于Fuchsia项目,他们希望Fuchsia最终将取代占据全球主导地位的移动操作系统Android。随着团队的发展,团队内部围绕Fuchsia的运作方式出现了一些激烈争论,他们将如何应对?

Udacity也弃用React Native了 !

不久之前,Airbnb 团队刚刚宣布放弃使用React Native,才过不久,Udacity移动团队最近也宣布从App中移除了使用React Native开发的最后一批功能。再加上6月中旬,Facebook宣布将大规模重构RN,这一系列的事件,让不少正在使用React Native的开发者瑟瑟发抖,陷入了恐慌之中。

flutter开发系列之一--环境配置

flutter出来已经一段时间,相信有不少开发同学都去尝试了,现在跨平台开发技术火爆移动开发圈,比如RN,Weex等等,但是这些方案如果不是有特殊需求,一般并没有动力去学,flutter不同,google大厂出品,值得信赖。这系列文章主要是用来记录自己学习flutter的一些经验和遇到的问题。

Android热更新技术总结

当前市面的热补丁方案有很多,其中比较出名的有阿里的HotFix、美团的Robust、微信的Tinker以及QZone的超级补丁方案。

1、热修复技术的优势?

  • 无需重新发版,实时高效热修复
  • 用户无感知修复,无需下载新的应用,代价小
  • 远程调试
平台 阿里百川HotFix(Sophix) AndFix Tinker Qzone Robust
即时生效 yes yes no no yes
性能损耗 较小 较小 较大 较大 较小
侵入式打包 无侵入式打包 无侵入式打包 依赖侵入式打包 依赖侵入式打包 依赖侵入式打包
Rom体积 较小 较小 较大 较小 较小
接入复杂度 傻瓜式接入 比较简单 复杂 比较简单 复杂
补丁包大小 较小 较小 较小 较大 一般
全平台支持 yes yes yes yes yes
类替换 yes yes yes yes no
so替换 yes no yes no no
资源替换 yes no yes yes no
成功率 ? 一般 较高(95.6%) 较高 最高(99.9%)

可以看到阿里的Sophix有很大优势,阿里系在热修复领域有很多积累,我们可以看下阿里系的热修复技术发展路径,一张表格来说明一下各个版本热修复的差别:

Android流行架构分享与解析

如何构建一个优秀的App

Android简介

  • 2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。随后,第一部Android智能手机发布于2008年10月(HTC G1)。其实Android最早可以追溯到2003年。1.0版本还是比较简陋的,只是一个测试版。
  • 2009年4月,谷歌正式推出了Android 1.5。这个版本极大的完善了1.0版本。
  • 2009年9月,谷歌发布了Android 1.6的正式版,当年搭载这款系统的是HTC Hero(G3)。这款系统就已经非常完善了。这个版本到4.0出来时都还有用户在使用。有一段时间的开发需要同时适配1.6和2.x。
  • 2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。也是从此时开始,大量的企业开始重视起Android App的开发。这个时期还属于架构的早期阶段,大多数人还是没有架构的概念的。Android App开发此时也还处于一个早期的探索阶段,没有任何成熟的框架或者库供开发者使用。所以可以说这个时期还属于架构的萌芽期。早期App功能都比较简单,交互也不像现在这么复杂。所以当时但是随着项目的规模增大和业务的复杂度的增长,App开发技术也随之快速发展。
  • Android 2.0/2.0.1/2.1 Eclair(松饼)2009.10.26
  • Android 2.2/2.2.1 Froyo(冻酸奶)2010.5.20
  • Android 2.3 Gingerbread(姜饼)2010.12.7
  • Android 3.0 Honeycomb(蜂巢)2011.2.2
  • Android 3.1 Honeycomb(蜂巢) 2011.5.11 
  • Android 3.2 Honeycomb(蜂巢)2011.7.13
  • Android 4.0 Ice Cream Sandwich(冰激凌三明治)2011.10.19 
  • Android 4.1 Jelly Bean(果冻豆)2012.6.28
  • Android 4.2 Jelly Bean(果冻豆)2012.10.30
  • Android 4.3 Jelly Bean(果冻豆)2013.7.25
  • Android 4.4 KitKat(奇巧巧克力)2013.11.01
  • Android 5.0 Lollipop (棒棒糖) 2014.10.16(Material Design)
  • Android 6.0 Marshmallow(棉花糖) http://7xq9ge.com1.z0.glb.clouddn.com/2017-10-16-AndroidHistory-1.png Android在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:阿童木(AndroidBeta),发条机器人(Android 1.0)。后来由于涉及到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。甜点命名法开始于Android 1.5发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松饼(Android 2.0/2.1),冻酸奶(Android 2.2),姜饼(Android 2.3),蜂巢(Android 3.0),冰激凌三明治(Android 4.0),果冻豆(Jelly Bean,Android4.1和Android 4.2)。

各版本UI对比

http://7xq9ge.com1.z0.glb.clouddn.com/2017-10-16-AndroidUI.png http://7xq9ge.com1.z0.glb.clouddn.com/2017-10-16-Android5UI.png

编译Android APP

30条经验帮你提升 tags: [Android, 移动开发] categories: [] keywords: [Android] date: 2016-02-22 11:42:29+08:00

  1. 添加任何第三方库时都要三思而后行,因为这是一个非常严肃的决定。
  2. 如何用户无法看到它,不要去绘制它!
  3. 除非你真的需要,否则不要使用数据库。
  4. 65k方法限制非常容易遇到,你可以通过multidexing 来修复它。
  5. RxJava 是用来取代异步操作AsyncTasks 的最佳替代方案。
  6. Retrofit 是最佳的网络库。
  7. 通过Retrolambda 缩短你的代码
  8. 组合RxJava、Retrofit和Retrolambda 以实现最大化利用。
  9. 我使用EventBus ,它非常伟大!但是我并没有大量使用,因为大量使用会导致代码复杂度提高。
  10. 通过功能分包,而不是层次。
  11. 把任何事情都从应用的线程中移除。
  12. lint 你的视图去帮助你优化布局和布局的层次,以便于你辨认哪些视图是多余的、可移除的。
  13. 如果你使用gradle你可以加速它!
  14. 生成你的编译报告 ,看看花费的构建时间;
  15. 使用一个众所周知的架构;
  16. 测试需要花费时间,但是一旦你掌握了它之后,将会获得比未测试更加快速和健壮的代码。 ;
  17. 使用依赖注入 ,让你的应用更模块化并且更容易测试;
  18. 收听fragmented podcast 对你来说是有用的。
  19. 不要使用你的个人电子邮件作为你的android市场出版商账户;
  20. 总是使用适当的 输入类型;
  21. 使用分析来找出使用平台和隔离缺陷;
  22. 掌握新 的状态(可以通过使用dryrun 来快速测试)
  23. 你的底层服务应该做它们需要做的事情,并且尽快的销毁。
  24. 使用Account Manager 去建议登录用户名和邮箱地址。
  25. 使用CI(持续集成)去编译和分发你的betaproduction的apk。
  26. 不要经营你自己的CI服务器,因为维护服务器包含磁盘空间/安全问题/更新服务器以免受到SSL攻击等等。应该使用circleci,travis或者shippable。它们便宜并且少一点担心。
  27. 自动化部署到playstore
  28. 如果一个库非常大而你只需要使用其中一个小功能子集。你应该找到一个更小的替代方案。(例如依赖proguard )
  29. 除非实际需要,不要使用更多的模块。如果模块不是经常修改,需要考虑到的重要问题是:从头编译它们所需要的时间(CI 的编译是一个很好的例子),甚至检查以前的各个模块的构建是否最新的,比起简单的加载.jar/.aar库时间要增加几乎4倍。
  30. 开始考虑为了svg格式放弃png格式;
  31. 为库创建抽象类,如果你仅仅需要一个开关去简单的切换到一个新的库(例如AppLogger.d(“message”) 能够包含 Log.d(TAG, message)),而后意识到Timber.d(message) 是一个更好的选择。)
  32. 监视活跃连接和连接类型(当处于WIFI时有更多的数据更新?)
  33. 监控电源和电池(充电时更多的数据更新?当电池电量低时暂停更新?);
  34. 用户界面就像是一个笑话。如果需要去解释它,它不是那么好;

译自:https://medium.com/@cesarmcferreira/building-android-apps-30-things-that-experience-made-me-learn-the-hard-way-313680430bf9#.1lb3hoh97

对升级速度忍无可忍 谷歌或将收回安卓控制权

新浪美股北京时间19日讯 谷歌即将收回安卓升级的主导权,而这将从根本上改变安卓生态系统当前的开发和更新模式。

theregister报道称,Edison Investment Research分析师温莎(Richard Windsor)认为,谷歌已经对迟缓的升级速度忍无可忍,随时可能将固件升级的控制权从硬件玩家的手中收回。

LinearLayout实现横向跑马灯效果

开发过程中,我们常常要实现各种各样的效果,跑马灯就是其中之一。android的TextView可以设置属性android:ellipsize="marquee"来实现跑马灯效果,但是如果我们的是要实现图文并茂的复杂布局的跑马灯,TextView就有点捉襟见肘了。