最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

Android 开发周报:Android 厂商寒冬将至、Android 内存申请分析

  • 2016-07-19
  • 本文字数:1389 字

    阅读完需:约 5 分钟

  1. 《不要再给 MVP 中的 Presenter 写接口了》:几个月前 Google 发布了一个官方 MVP 示例项目,在项目中,Google 首先写一个上帝接口 BasePresenter,然后在每个功能模块里都写了协议类名为某某 Contract,在其中封装了模块下的 View 接口和 Presenter 接口。这种管理方式的好处是,将 View 和 Presenter 管理起来,强化其一一对应的关系,便于操作。不论是否以协议类的方式呈现,现在开发者喜欢让 Presenter 继承接口。而本文观点正好相反,本文的观点不一定正确,但希望能引起你对这个问题的思考。
  2. 《Android 内存申请分析》:在做优化的过程,除了关注内存的申请量以及 GC 的情况之外,我们经常需要想方法找出是那些对象占用了大量内存,以及他们是如何导致 GC 的,这意味着我们需要获取对象申请的信息(大小,类型,堆栈等),本文为我们介绍了几种获取对象申请信息的方法。
  3. 《为什么 Android 开发者应该使用 FlatBuffers 替代 JSON?》:你可能会问,既然我们已经有很标准的 JSON 以及转换库比如 GSON 和 Jackson,为什么还要使用新的工具呢?不妨先试一下 FlatBuffers,然后你就会发现它比 JSON 快得多。FlatBuffers 是一个高效的跨平台序列化类库,可以在 C++、C#、C、Go、Java、JavaScript、PHP 和 Python 中使用。是 Google 开发的,是为了应用在游戏开发,以及其他注重性能的应用上。
  4. 《Unity Android Plugin 开发指南》:本文为我们介绍了如何在 Unity 工程中使用 Android 或者 Java 的库,包括:如何在 Unity 项目中使用 Android Plugin、Unity-Android 相互调用、Unity 接口设计的最佳实践、如何构建 Unity-Android 混合项目、如何调试 Unity 和 Android 代码。本文有助于我们上手 Unity。
  5. 《安卓单元测试 (八):Junit Rule 的使用》:一个 JUnit Rule 就是一个实现了 TestRule 的类,这些类的作用类似于 @Before、@After,是用来在每个测试方法的执行前后执行一些代码的一个方法。此外,JUnit Rule 还能做一些 @Before 这些 Annotation 做不到的事情,那就是他们可以动态的获取将要运行的测试类、测试方法的信息。阅读文章,了解 Junit Rule 的更多细节。
  6. 《Google I/O 2016 笔记:APK 瘦身的正确姿势》:业务逻辑不断累积、引入的第三方 SDK 不断增加以及图片资源不变变大,APK 瘦身已经是每个 Android 应用开发者不得不考虑的问题了。坊间流传的各种瘦身方法有些切实可行,有的却流毒甚广。本文为我们总结了 2016 Google I/O 大会上提到的瘦身技术。
  7. 《Android Vector 曲折的兼容之路》:Android 5.0 发布的时候,Google 提供了 Vector 的支持。Vector Drawable 相对于普通的 Drawable 来说,好处很多,比如:可以自动进行适配、大幅减少图像的体积、使用简单,很多设计工具支持、成熟、稳定,前端已经非常广泛的进行使用了。本文详细介绍了 Vector 的兼容之路,并讲解了 Vector 的使用方法。
  8. 《深度理解 Android InstantRun 原理以及源码分析》:Instant Run 是 Android Studio2.0 以后新增的一个运行机制,能够显著减少你第二次及以后的构建和部署时间。简单通俗的解释就是,当你在 Android Studio 中改了你的代码,Instant Run 可以很快的让你看到你修改的效果。而在没有 Instant Run 之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修改后的效果本文详细深度介绍了 Android InstantRun 原理并且结合其源码分析了实现细节。本文有助于我们扩张插件化的思路。
2016-07-19 19:004786
用户头像

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

关注

评论

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

微服务错误码设计实践

循环智能

微服务 gRPC 异常处理 错误码 接口设计

BVD比特视频APP系统开发搭建

徒步运动系统开发|徒步运动软件APP开发

带你用VUE实现上传图片效果

华为云开发者联盟

CSS html Vue js 标签

Apache Flink 入门知识超全概括!

云祁

大数据 flink 7月日更

程序员如何提高开发效率?

万事ONES

项目管理 程序员 敏捷开发 ONES

Redisson 分布式锁源码 04:可重入锁释放

程序员小航

Java redis 分布式锁 redisson redisson 分布式锁

【LeetCode】点菜展示表Java题解

Albert

算法 LeetCode 7月日更

IPFS公司有哪些?IPFS 哪家公司好?

架构实战营 作业 模块一

脉醉

#架构实战营

电脑误删文件如何恢复?两个方法解决你的困扰

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

包租婆软件开发|包租婆系统APP开发

阿凡达挖矿软件开发|阿凡达挖矿APP系统开发

5分钟带你了解微前端(内含大量代码示例)

LigaAI

大前端 qiankun

骆驼币挖矿软件开发|骆驼币挖矿APP系统开发

Pandas

Flychen

学习哪门编程语言好,我来回答

实力程序员

BTCs挖矿软件开发|BTCs挖矿系统APP开发

数据结构——平衡二叉树(AVL)

若尘

数据结构 二叉树 平衡二叉树

MUZIKA穆奇卡系统APP开发简介

开发小技巧之:unicode的排序和正则匹配

程序那些事

Unicode 排序 程序那些事

Rust从0到1-Cargo-Workspaces

rust cargo workspaces

Rust从0到1-Cargo-自定义命令

rust cargo 自定义命令 Custom Commands

关于深度学习编译器,这些知识你需要了解一下

华为云开发者联盟

深度学习 tensorflow 编译器 算子开发 深度学习编译器

敏捷项目管理会不会代替传统项目管理?

万事ONES

项目管理 ONES 敏捷管理

百度搜索稳定性问题分析的故事(下)

百度Geek说

百度 后端 数据 软件架构 搜索

写代码是意识流?

卢卡多多

代码规范 意识 7月日更

斗宠大陆APP开发|斗宠大陆软件系统开发

【Flutter 专题】95 图解 Dart 单线程实现异步处理之 Task Queue

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

多链星球APP开发|多链星球系统软件开发

java算法易筋经:常见java-API使用技巧

华为云开发者联盟

Java List 数组 队列 java-API

Android开发周报:Android厂商寒冬将至、Android内存申请分析_移动_郭亮_InfoQ精选文章