InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

Android 开发周报:Play Store 搜索广告推出、ListView 源码解析

  • 2015-08-04
  • 本文字数:2463 字

    阅读完需:约 8 分钟

新闻

  1. 《正式版 Android M 预计 10 月发布》:Android M 已经连续放出了两个开发者预览版,按照计划还会有第三个,然后才是正式版。这第三个要多等等了,但等待将是值得的。Google 的一名员工 Wojtek Kaliciński 公开发帖称,Android M Developer Preview 3 需要更长时间打磨,因为它们想使之接近最终正式版。
  2. 《谷歌放大招,拯救用户的老旧 Android 机》:其实谷歌的 Android 系统升级并不慢,几乎每年都会有新版本。从 Android 系统诞生以来,就饱受碎片化的困扰,很多机器都不能及时升级。不过好消息来了,为了解决安卓旧手机无法升级,也为了重新夺回对安卓系统的控制权,在下一代的 Android6.0 系统中,核心系统更新和 OEM 厂商更新将会区分开来,核心系统将单独升级。谷歌表示,此举还有利于解决饱受诟病的安卓碎片化问题。
  3. 《坐拥 10 亿 Android 用户,Google 终于开始动 Google Play 这座金矿了》:Google Play 覆盖了 190 多个国家 / 地区的超过 10 亿 Android 设备用户,不管是对 Google 自身来说,还是对在上面分发应用的开发者来说,这都是一个不可小觑的金矿。今年 2 月份开始,Google Play 就开始小范围测试搜索广告服务,如今 Google 终于在 Android Developers 官方博客上宣布,正式推出搜索广告服务。

教程

  1. 《搞个这样的 App 要多久?》:无论你是技术小弟一枚,还是公司的技术总监,总会被别人问到类似于标题这样的问题。如果提问者是同行,我们可以这样回答:大概需要 2 个月,一个后端工程师,Android 和 iOS 工程师各一枚,外加美工…,然后同行点点头,感觉你很务实,也很机智,最后按照你的思路开干。但如果是被外行问到,显然上述回答并不是提问者想要的答案。点击标题,来看看这个“如有雷同,纯属巧合”的故事吧。
  2. 《Android 下的 NFC 是如何开发的?》:随着物联网与 O2O 业务的发展,NFC 在小额支付领域的前景越来越广阔。本文结合多个公开文档,简要介绍了 NFC 的工作场景,同时使用 RxAndroid 实现了对 NFC 字节流的读取与异常捕捉;介绍了卡模拟过程中与 Android 底层的交互原理与简单示例。
  3. 《Android ListView 工作原理完全解析,带你从源码的角度彻底理解》:在 Android 所有常用的原生控件当中,用法最复杂的应该就是 ListView 了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView 可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。本文从源码的角度解析了 ListView 的工作原理。
  4. 《使用 O-LLVM 和 NDK 对 Android 应用进行混淆》:Android 开发中经常需要对敏感信息进行加密,避免不了要将密钥存放在终端设备上,那么如何防止密钥被逆向出来呢?相比较密钥从 Java 层下移到 NDK 层是比较安全的,本文就来介绍如何对 NDK 层代码进行混淆,以更好的保护我们的密钥。这里是英文地址
  5. 《Android DataBinding:再见 Presenter,你好 ViewModel!》:最近一段时间 MVP 模式已经成为 Android 应用开发 UI 层架构设计的主流趋势。类似 TED MOSBY,nucleus 和 mortar 之类的框架都引入了 Presenters 来帮助我们搭建简洁的 App 架构。它们也(在不同的程度上)帮助我们处理 Android 平台上臭名昭著的设备旋转和状态持久化等问题。MVP 模式也有助于隔离样板代码,虽然这并不是 MVP 模式的设计初衷。本文详细分析了这种架构。
  6. 《为什么刷机后系统第一次启动会很慢?》:在做 Android 内核开发的过程中,我们会发现,每次编译完系统源码,烧录到设备或手机中后,第一次启动都会很慢很慢,要好几分钟甚至十几分钟,为什么会出现这样的现象呢?系统刷机后第一次启动与后面再次启动有什么不同呢?阅读文章,了解真相。
  7. 《使用 Android lint 发现并解决高版本 API 问题》:在编写代码时,为了实现一些功能,我们需要使用高版本的 API,比如 SharedPreference 的 Editor 中的 apply 方法为 API 9 开始引入,在 API 9 以上的机器使用没有问题,但是在 API 8 上,如果运行时执行了这段代码,就会崩溃,问题相当严重。尤其是该问题出现在正式版中,后果不堪设想。本文介绍了如何使用 lint 发现并解决这些问题。
  8. 《 TabLayout:另一种 Tab 的实现方式》:在 5.0 以前我们想要实现像网易新闻客户端那样的的 Tab 可以有很多种选择:比如古老的 TabHost,3.0 后 ActionBar 所提供的 Tab,以及各种成熟的 Tab 开源控件都可以直接或间接地实现 Tab 的效果。谷歌在 5.0 后放出的 design 包中推出了官方的 TabLayout 控件,TabLayout 可以 方便地实现类似效果,并且符合谷歌自家的 MD 设计理念,本文介绍了 TabLayout 的使用方法。

开源项目

  1. Carpaccio :Carpaccio 是一个第三方的 Android DataBinding 库,它可以使 View 变得非常“聪明“,使用 Carpaccio 后,如果要让一个 ImageView 从网络加载图片,我们不再需要写相关的网络请求代码,在 layout 中添加一个标签就可以完成所有操作。Carpaccio 是非常实用的一个类库。
  2. TagCloudView :TagCloudView 是一个支持 SingleLine 模式的标签云开源项目,使用 TagCloudView 可以轻松实现知乎问题话题列表标签云效果,TagCloudView 还提供了丰富的自定义样式选择。
  3. CustomActivityOnCrash :每个 App 都会有奔溃的可能性,无论我们开发的时候多认真,测试过多少种机器,总会有一定的错误率。当 App 异常时,系统会弹出一个错误对话框。使用该项目,我们可以在 App 异常时显示一个自定义的错误页面,从而提升产品的用户体验。

工具

  1. 上传 apk 到 fir 的 gradle 插件:App 内测需要把安装把安装包放在一个地方进行托管,方便内测人员下载。国内有蒲公英,fir 等这些网站可以用。该工具是非官方的一个 gradle 上传工具。
  2. JSONExport :JSONExport 是一款 Swift 编写 Mac OS X 桌面应用,支持将 JSON 输出为 Objective-C/Swift/Java 语言类模型。

感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2015-08-04 06:562299
用户头像

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

关注

评论

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

【精选实践】58 集团的数据库技术选型思路

TiDB 社区干货传送门

数据库架构选型

TiDB 集群跨平台在线迁移方案(离线环境下从 x86 节点迁移到 arm64 节点)

TiDB 社区干货传送门

管理与运维

分区的现状与未来规划

TiDB 社区干货传送门

TiDB 在车好多的实践

TiDB 社区干货传送门

TIDB备份引发公司所有TIDB集群不可用

TiDB 社区干货传送门

TiDB 集群跨平台在线迁移方案(离线环境下从 x86 节点迁移到 arm64 节点)

TiDB 社区干货传送门

管理与运维

伴鱼数据库之性能大盘

TiDB 社区干货传送门

都是空格惹的祸

TiDB 社区干货传送门

漫谈TiDB收费与成本

TiDB 社区干货传送门

TiDB在X86和ARM混合平台下的离线部署和升级

TiDB 社区干货传送门

安装 & 部署

DM 2.0 小试牛刀

TiDB 社区干货传送门

使用 TiCDC 实时同步 TiDB 数据到备用逃生环境的实践

TiDB 社区干货传送门

实践案例 安装 & 部署

TiDB监控信息反向代理配置(一个域名可跳转不同集群)

TiDB 社区干货传送门

TiDB K8S 定时备份状态异常问题排查

TiDB 社区干货传送门

管理与运维

TiDB 集群 TiKV 节点内存占用较高问题排查

TiDB 社区干货传送门

故障排查/诊断

SQL上线引发的血案

TiDB 社区干货传送门

社区资源这么丰富我们怎么抄作业

TiDB 社区干货传送门

TiDB 4.0 新 Feature 原理及实践系列合集

TiDB 社区干货传送门

DM运维踩坑实践总结

TiDB 社区干货传送门

TiDB 入门运维基础视频教程 (四) -- 导入工具 Lightning

TiDB 社区干货传送门

【SOP 系列 19】region 分布不均问题排查及解决不完全指南

TiDB 社区干货传送门

管理与运维

SQLserver迁移TiDB场景的实践

TiDB 社区干货传送门

迁移 管理与运维

TiDB + HAProxy 配置透传 IP

TiDB 社区干货传送门

pd-recovery后部分tikv连接pd失败

TiDB 社区干货传送门

TiDB for PostgreSQL 学习指南

TiDB 社区干货传送门

实践案例 管理与运维

TiDB K8S 删除备份阻塞问题排查

TiDB 社区干货传送门

TiDB 底层架构 管理与运维

热烈庆祝58同城TiDB All in v4.0.2(附核心PMC订单流水业务升级流程和一点使用感悟)

TiDB 社区干货传送门

TiFlash运维漫谈

TiDB 社区干货传送门

TIDB br 备份 PermissionDenied

TiDB 社区干货传送门

TiDB 入门运维基础视频教程 (三) -- 导出工具 dumpling

TiDB 社区干货传送门

TiDB DM扩容和监控

TiDB 社区干货传送门

  • 扫码添加小助手
    领取最新资料包
Android开发周报:Play Store搜索广告推出、ListView源码解析_移动_郭亮_InfoQ精选文章