移动开发

ES6 Reflect

一、概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。 Reflect 可以用于获取目标对象的行为,它与 Object 类似,但是更易读,为操作对象提供了一种更优雅的方式。它的方法与 Proxy 是对应的。 (1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty)

Android Studio 的提示和技巧

前言 作为一名 Android 开发人员,我们使用许多 IDE 来为我们的应用程序编写代码。例如,Android Studio、Eclipse、Visual Studio(在某些情况下)等。但这些 IDE 中最著名和推荐的一款是 Android Studio。如今,每个 Android 开发人员都使用 Android Studio 为他们的应用程序编写代码,因为 Android Studio 为我

MediaSession 简介

MediaSession 简介 本文主要是介绍下MediaSession,结合framework源码例子,最后看如何使用MediaSession 来监听A2DP的播放行为 MediaSession 主要是用来控制播放行为,如播放、暂停等行为,不过这个控制行为是由另外一个进程来操作的,举个例子,比如文件管理器进程在播放视频,此时你可以通过语音助手识别语音暂停、快进等命令,然后通过MediaSessi

Android Xml转换为View过程

前言: Android布局文件Xml,通过setContentView(@LayoutResint layoutResID)或者LayoutInflater.from(context).inflate(int ResID)转换为Java对象,开发工具Android Studio 提供的预览功能,开发过程中界面和业务可以并行开发,提高了开发效率。以下分析过程是基于 Android API 25 Pl

Java注解实现异步导入与导出(二)

Java注解实现异步导入与导出(一) 上一篇写完了用注解实现异步导入,这一篇实现用注解异步导出。 1.背景: 导出最容易遇到的问题就是超时了,随着我们DB数据越来越多,导出时特别容易超时,这时候通常的解决办法就是优化SQL,或者直接限制导出条数,但是这两种方法都只能解决暂时的问题,过一段时间可能就又会冒出来。所以还是使用异步导出,先存到nas中,然后让用户再去下载。 2. 流程设计: 2.1 生

Android DataBinding系列详解(四)

对DataBinding简单使用基本讲解完成了,大家一定很好奇DataBinding怎么实现的呢,下面结合源码讲解DataBinding的实现原理。 现在就从代码一步一步看。如图1,通过DataBindingUtil setContentView得到ActivityMainBinding对象 图1 省略中间步骤,最终是调用sMapper.getDataBinder,sMapper是Da

adb常用命令

引言 本文为小编学习总结的一些adb的常用命令,可能一些命令有待验证,更多内容可以参考adb用法大全 基本用法 语法命令 adb 命令的基本语法如下: adb [ -d| -e| -s <sericalNumber>] <command> 如果只有一个设备/模拟器连接时,可以省略掉[ -d| -e| -s] <sericalNumber>] 这一部分,直接使用a

React Native 0.70 发布,Hermes 成为默认引擎

React Native 0.70 版本正式发布,这个版本有几项改进,比如 Codegen 的新的统一配置、Hermes 作为默认引擎、对 Android 构建的完整 CMake 支持,还有对新架构文档的更新。 具体更新内容如下: New Architecture 的新文档 在过去的几个月里,Meta 一直在努力为文档中的 New Architecture 部分增加更多的内容。在新的部分,你可以找

手写RxJava简易框架领悟RxJava的美秒

RxJava笔记 前言 看此篇之前最好知道RxJava的使用。由于RxJava内部源码实现有点复杂,既然用拆轮子的方式来分析源码比较难啃,不如换种方式,以造轮子的方式,将源码中与性能、兼容性、扩展性有关的代码剔除,只留下核心代码,加上我个人的理解,带大家揭秘RxJava的实现原理(本文不涉及框架的使用介绍)。 一、构建观察者类 Subsribler在RxJava里面是一个抽象类,它实现了Obs