【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

Android 开发周报:Android 7.0 开始推送、秒级编译方案解析

  • 2016-09-01
  • 本文字数:1349 字

    阅读完需:约 4 分钟

  1. 《Android 动态布局入门及 NinePatchChunk 解密》:相信每一个 Android 开发者,在接触“Hello World”的时候,就形成了一个观念:Android UI 布局是通过 layout 目录下的 XML 文件定义的。使用 XML 定义布局的方式,有着结构清晰、可预览等优势,因而极为通用。可是,偏偏在某些场景下,布局是需要根据运行时的状态变化的,无法使用 XML 预先定义。这时候,我们只能通过 JavaCode 控制,在程序运行时,动态的实现对应的布局。本文给大家介绍了一些动态布局相关的基础知识和经验。
  2. 《Freeline - Android 平台上的秒级编译方案》:Freeline 是蚂蚁金服旗的一个基于动态替换的编译方案,5 月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似 Facebook 的开源工具 buck 的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发 dx,并发 merge dex 等策略,在多核机器上有明显加速效果,另外在 class 及 dex,resources 层面作了相应缓存策略,做到真正增量开发。相比目前 instant-run,buck,layoutcast 等方案快数倍速度。
  3. 《轻听变色之谜》:轻听是一款小而美的 Android 本地音乐播放器,而它的特点之一就是拥有多彩的外衣。轻听实现变色主要是结合两种方式:自定义 Style、Theme 与动态配置主题色。本文为我们详细讲解了轻听变色的实现过程。
  4. 《Android 7.0 来的真快,来看看又来了些什么出人意料的东西》:Android 7.0 已经开始推送,最新的操作系统增加了大量的功能,添加了新的 VR 模式的平台支持和优化;增加了多窗口支持,现在用户可以一次在屏幕上打开两个应用;随时随地低电耗模式;更强大的 Notification;以及号码屏蔽、来电过滤等等。阅读文章,了解更多关于 Android 7.0 的新技术。
  5. 《Android 动态链接库加载原理及 HotFix 方案介绍》:随着项目中动态链接库越来越多,作者遇到了很多奇怪的问题,比如只在某一种 OS 上会出现的 java.lang.UnsatisfiedLinkError,但是明明动态库名称没错,ABI 也没错,方法也能对应的上,而且还只出现在某一些机型上。为了找到出现千奇百怪问题的原因,和能够提供一个方式来解决一些比较奇怪的动态库加载的问题,了解一下 so 的加载流程是非常有必要的了,便于发现问题和解决问题,这就是本文的由来。
  6. 《awesome-adb》:ADB,即 Android Debug Bridge,它是 Android 开发 / 测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。持续更新中,欢迎补充指正,觉得有用的可以将 此 GitHub 仓库 Star 收藏备用。有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。
  7. 《破译 Android 性能优化中的 16ms 问题》:Android 应用有一个明显的趋势—越来越多地使用动画效果来提升用户体验。但任何事情都是有代价的,丰富复杂的动画提升用户体验的同时,性能问题像隐形的恶魔一样,逐渐地侵蚀着你的应用。动画不流畅、界面卡顿开始困扰着你,逼着你进行性能优化。在这个优化过程中,最理想的标准就是绘制一帧的时间不要超过 16ms。这是什么意思?阅读本文,一探究竟。
  8. 《Android 下多彩的 StatusView 的实现》:目前市面上的大量 App 都实现了透明状态栏、多彩状态栏的效果。Android 5.0 以上的系统原生支持彩色状态栏效果,但为了兼容性,也需要适配 5.0 以下的版本。本文给出了很好的解决方案。
2016-09-01 19:003374
用户头像

发布了 121 篇内容, 共 43.2 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

我画了35张图就是为了让你深入 AQS

一枝花算不算浪漫

AQS jdk源码

修改网桥默认地址

奔跑的菜鸟

Docker

“我XXXX,还能学编程吗?”

三号无名指

编程 程序员 工具 入门

工作原则:决策要基于数据的支撑

Janenesome

高效工作 思考 原则

看完这篇,你也是字符编码大神(ASCII、Unicode、UTF-8、UTF-16、UTF-32)

Meandni

Java 面试 Unicode utf-8 utf-16

《零基础学 Java》 FAQ 之 5-如何在IntelliJ IDEA里配置JDK

臧萌

Java jdk intellij

LeetCode 781. Rabbits in Forest

liu_liu

LeetCode

克服恐惧,勇于分享

孙苏勇

程序员 分享 工作

要做医生,不要做卖药的

Janenesome

高效工作 思考 沟通

MySQL安全-审计

一个有志气的DB

安全 MySQ

Binlog2sql恢复误删除的数据

一个有志气的DB

MySQL 安全 数据

Web3极客日报#141

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

Web3极客日报#129

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

玄铁重剑,我用过最贵重的键盘

池建强

ipad 苹果 键盘

香港科技大学与OSL海科签订无毒海洋防污技术独家授权协议

极客编

当你不被尊重的时候,才会想起去尊重别人

小天同学

人生 个人成长 感悟

十大经典排序算法总结

淡蓝色

Java 算法 计算机基础 排序

VSCode 集成 Haskell 环境

liu_liu

vscode haskell hie Haskell Language Server

程序员小白的个人思考

程序员小岑

程序员 职场 思考 感悟

Python3.6.1官方文档练习——初入江湖(二)

小匚

识别代码中的坏味道(一)

Page

Java 面向对象 重构

webpack入门系列之二——插件使用及热更新打包

子铭

Web

LeetCode 513. Find Bottom Left Tree Value

liu_liu

LeetCode

Mac 使用笔记

FeiLong

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (八)好单元测试的特质

编程道与术

Java 编程 软件测试 TDD 单元测试

测试开发专题:spring-boot自定义返回参数校验错误信息

王德发

Spring Boot 测试

职涯思考

Kevin Z

职业 思考 工程师思维 硬件 工程师

Leetcode 556. Next Greater Element III

隔壁小王

算法

《零基础学 Java》 FAQ 之 6-Java里Bean这个名字怎么来的

臧萌

Java spring

不要做软件开发团队中打破窗户的那个人

程序员小岑

程序员 思考 感悟 软件开发 团队

Redis实现热卖商品排行榜

北漂码农有话说

redis

Android开发周报:Android 7.0开始推送、秒级编译方案解析_移动_郭亮_InfoQ精选文章