移动开发

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

浅谈 RunLoop

什么是RunLoop     RunLoop 是事件接收和分发机制的一个实现,是线程相关的基础框架的一部分,一个 RunLoop 就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,通常的代码逻辑是这样的: do{ //... }while(//...)