Android 上的低功耗蓝牙实践

这是我在 Droidcon Beijing 2016 和 GDG Devfest 2016 上做的分享,以下是正文: Slide 01 我今天分享的主题是 Android 上低功耗蓝牙的实践。这个主题比较小众。我在过去的一年多的时间里,主要是在做低功耗蓝牙相关的开发。接触过程中发现,BLE 的开发和通常的 Android APP 的开发有点不一样,这里需要访问硬件资源,而且涉及到一些协议相关的内容, »

React Native 触摸事件处理详解

触控是移动设备的核心功能,也移动应用交互的基础,Android 和 iOS 各自都有完善的触摸事件处理机制。React Native(以下简称 RN)提供了一套统一的处理方式,能够方便的处理界面中组件的触摸事件、用户手势等。本文尝试介绍 RN 中触摸事件处理。 1. RN 基本触摸组件 RN 的组件除了 Text,其他组件默认是不支持点击事件,也不能响应基本触摸事件,所以 RN »

React Native 中 ScrollView 性能探究

1 基本使用 ScrollView 是 React Native(后面简称:RN) 中最常见的组件之一。理解 ScrollView 的原理,有利于写出高性能的 RN 应用。 ScrollView 的基本使用也非常简单,如下: <ScrollView> <Child1 /> <Child2 »

30 天入门 Android 开发, Google 与你一起圆梦

经常会有朋友让我推荐 Android 开发入门的教程或者视频,我一直是推荐看官方的教程。大部分人或者觉得比较迷茫,或者觉得坚持不下去。这次推荐这个《30 天入门 Android 开发》是 Google 亲自发起的免费教学,以学习小组方式,大家可以一起学习和交流。一个好的开始,是成功的一半。让 Google 工程师带领你一起进入多彩的 Android 开发大门。点击这里 报名。 Android »

Java 单例真的写对了么?

单例模式是最简单的设计模式,实现也非常“简单”。一直以为我写没有问题,直到被 Coverity 打脸。 1. 暴露问题 前段时间,有段代码被 Coverity 警告了,简化一下代码如下,为了方便后面分析,我在这里标上了一些序号: private static SettingsDbHelper sInst = null; public static SettingsDbHelper getInstance(Context »

更优雅的 Android 发布自动版本号方案

以前看到一些自动化版本号打包的文章。如果您的项目是用 Git 管理的,并且恰巧又是使用 Gradle 编译(应该绝大部分都是这样的了吧?),本文试图找到一种更加优雅的自动版本管理方法。 1 背景 我们都知道,Android 应用的版本管理是依赖 AndroidManifest.xml 中的两个属性: android:versionCode:版本号,是一个大于 0 的整数,相当于 Build Number, »

FlatBuffers 体验

1. 背景 最近在项目中需要使用一种高效数据序列化的工具。碰巧在几篇文章中都提到了 FlatBuffers 这个库。特别是 Android 性能优化典范第四季中两个对比图,让我对它产生浓厚的兴趣。如下: (注:图片来自) 可见,FlatBuffers 几乎从空间和时间复杂度上完胜其他技术,我决定详细调研一下此技术。 FlatBuffers 是一个开源的跨平台数据序列化库,可以应用到几乎任何语言(C++, C#, Go, Java, JavaScript, PHP, »

[第 30 期] Android 周报

文章/教程 Android 绘制流程 文章梳理了 Android 中从 Activity 创建到 View 显示的整个流程,作为一个大纲性质的文章,对理解 Android 的显示有很大的帮助。 Android UI 性能优化详解 这篇文章翻译自 High Performance Android Apps 这本书,本文介绍了 Android »

Android targetSdkVersion 原理

前几天 Google 官方发布文章解析 compileSdkVersion、minSdkVersion 以及 targetSdkVersion 的含义,以及合理设置各个值的意义,原文 Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion(后面简称 “原文”),还有翻译版。 其中,compileSdkVersion 和 minSdkVersion 都非常好理解,前者表示编译的 SDK »

我的 2015

很久就计划要写一篇总结 2015 年的文章,一直到现在,还有几个小时就到 2016 年了,才开始写,可见拖延症越来越严重了。这样的图每年都会出现,确实也戳中了很多人,也包括我。 当我静下来想写一些东西的时候,竟然想不起我这一年干了些啥。 今年的工作比较稳定,工作上的事情还算顺利。 很早就计划用博客来记录技术学习,用微博来记录小知识点。博客只有这一年坚持了下来,一共写了 80 多篇,平均每周一到两篇,也收到不少的关注或者点击,我自己在这件事情中受益很大,很多时候会翻阅自己以前的文章来解决或者帮助别人解决问题。 »