自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 配套设备配对

Google 官方为什么要提供 Companion device 相关的 API 呢?一般情况下,手机或平板要连接外围设备的话大概的流程是:发起扫描(Wifi 或 蓝牙)->请求位置权限(可能还有 BLUETOOTH_ADMIN 权限)-> 开始扫描 -> 扫描到结果开始连接我们知道 WiFi 信息,蓝牙设备如 Beacon 信标的信息会暴露用户的位置信息,所以在进行 Wi...

2020-04-18 16:09:46 2325

原创 Android 蓝牙技术(二)- 低功耗蓝牙

Android 4.3(API 级别 18)开始内置支持。与传统蓝牙不同,蓝牙低功耗 (BLE) 旨在提供显著降低的功耗。这使 Android 应用可与功率要求更严格的 BLE 设备(例如近程传感器、心率监测仪和健身设备)通信。使用场景有:在临近设备间传输少量数据。与 Google Beacons 等近程传感器交互,以便为用户提供基于其当前位置的自定义体验。注意: 当用户使用 BLE...

2020-04-18 16:07:42 641

原创 Android 蓝牙技术(一)- 经典蓝牙

Android平台支持蓝牙设备通过蓝牙协议栈来实现无线通信。应用层提供了Bluetooth APIs来使用蓝牙功能,这些API可以使应用可以无线连接其他蓝牙设备实现点对点及多点间通信。使用Bluetooth APIs,应用可以实现以下功能:扫描其他蓝牙设备在本地蓝牙适配器查询已配对的设备建立RFCOMM通道通过服务发现连接其他设备与其他设备进行数据交互管理多连接本篇主要讲经典...

2020-04-18 16:06:03 1544 1

原创 Learning Node.js

HELLO WORLD (Exercise 1 of 13)Write a program that prints the text “HELLO WORLD” to the console (stdout). console.log("HELLO WORLD") BABY STEPS (Exercise 2 of 13)Write a program that accepts

2017-10-11 16:54:02 481

原创 CardView源码解析-View阴影

CardView 扩展 FrameLayout 类并让您能够显示卡片内的信息,这些信息在整个平台中拥有一致的呈现方式。CardView 小部件可拥有阴影和圆角。 如果要使用阴影创建卡片,请使用 card_view:cardElevation 属性。CardView 在 Android 5.0(API 级别 21)及更高版本中使用真实高度与动态阴影,而在早期的 Android 版本中则返回编

2017-08-14 21:38:32 5289 2

原创 仿360市场下载按钮

先看一下效果: 无论多复杂的动画我们都是可以分割成小单元的,然后分步来实现。这个动画大概分为收缩,准备,加载,完成几个部分。为此定义一个枚举类来描述view的状态。 public enum Status { NORMAL, START, PRE, EXPAND, LOAD, END } 收缩动画使用动画不断改变圆角矩形的宽度,触发重绘。代码如下:private

2017-05-16 15:34:22 294

原创 Retrofit+Rxjava服务器IP轮询重试机制实现

为了保证客户端稳定性和网络容错性,提升用户体验,在客户端建立服务端IP轮询及重试机制是十分有必要的,本文为我个人经验总结,希望对你能有参考价值。app在启动时会请求一些配置信息,其中就包括ip的路由表,将这份路由表存储到本地,至于是sp还是对象持久化抑或是其他方式,可根据实际情况自行选择。因为项目网络层由Retrofit+Rxjava+Okhttp实现,Retrofit运行时无法改变baseUrl

2016-12-12 17:26:21 922

原创 android多渠道打包最快方案

目前Android多渠道打包主要两种方式:Gradle方式。在build.gradle配置: productFlavors { huawei { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "huawei"] } xiaomi { manifestPlaceh

2016-12-12 15:36:40 340

原创 jenkins+gitlab+蒲公英实现android应用自动化打包分发

作为一名高效的开发者,要尽量避免的重复劳动实现自动化的流程。搭建本地jenkins服务器,实现自动化打包流程,从此测试包交给测试人员自己去打就好了,集成蒲公英等分发平台,实现二维码或短链接下载,也为运营人员提供了便捷。前期准备前往https://jenkins.io/下载对应系统版本的jenkins包,本文以windows为例,两种方式: 1. 下载windows对应的安装包,安装后jenkin

2016-12-12 14:52:06 1762

原创 apk瘦身的几个技巧 - Optimize your app

使用VectorDrawable代替传统的png格式的icoAndroid 5.0开始提供了新的API VectorDrawable 可以使用SVG类型的资源,也就是矢量图。与矢量图相对应的是栅格图,png,jpg等格式的是栅格图,在android中因为要适配不同分辨率的机型,我们需要在不同的资源文件夹下放置不同尺寸的图片资源,因为栅格图形是有固定数量的像素组成,放大会导致图像失真模糊。现在有了矢量

2016-11-29 16:54:57 738

原创 关于AndroidStudio你可能不知道的几个奇巧淫技

shift + command + a 查找动作 如上,我们可以快捷的打开java autoimport开关shift + shift 全局查找 可以方便的查找资源文件、类等control + space 代码提示 这个估计是IDE的最强feature了吧shift + control + space 根据类型提示 根据需要的类型提示,这个还是挺实用的co

2016-11-29 16:54:08 831

原创 Dagger2详解-从代码分析其原理

Dagger2基本概念请移步官方文档,或者我的翻译。架构方面请关注GitHub(MVP+Retrofit+Dagger2+Okhttp)及我的文章Android UI框架快速搭建实践Dagger2是Dagger1的分支,由谷歌公司接手开发,目前的版本是2.0。Dagger2解决问题的基本思想是:利用生成和写的代码混合达到看似所有的产生和提供依赖的代码都是手写的样子。如果我们将Dagger2和1比较,

2016-11-29 16:52:42 965

原创 DI框架Dagger2系统性学习

目录 Home User’s Guide Android Multibinding Sets and Maps Subcomponents Producers Testing Project Pages 到底部HomeDagger是一个完全静态的编译时的Java和Android依赖注入矿建。它由Square发布的早期版本改造而来现在由Google维护

2016-11-29 16:51:19 1034

原创 Pushwoosh集成-原生系统推送

Pushwoosh是境外的一个提供免费推送服务的公司,Android app当然也是基于Google Cloud Messaging 封装的。因为官方文档不太直观,也可能是之前不太了解过国外此类第三方服务的套路,使用过程也遇到了一些小问题,算是采坑了吧!添加依赖compile 'com.pushwoosh:pushwoosh:+'compile 'com.android.support:suppo

2016-11-29 16:46:31 599

原创 ReactNative环境搭建

Mac安装依赖需要AndroidStudio、node.js、React Native command line tools和Watchman. 建议通过Homebrew安装node和watchman. brew install nodebrew install watchman 安装React Native 命令行npm install -g react-native-cli 如果出现pe

2016-11-29 16:45:14 423

原创 Windows下使用hexo+github搭建个人博客

前期准备下载安装Node.js 前往https://nodejs.org/en/下载并安装Node.js.下载并安装Git,安装完成后,在命令行窗口输入node -v,如果不能打印当前node版本号即不识别node命令,则请将node的安装目录添加到系统环境变量。 前往https://git-scm.com/downloads下载对应平台的git安装包,同理测试git –version ,如

2016-11-29 15:05:12 532

原创 java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut

java.lang.IllegalArgumentException: error at ::0 can’t find referenced pointcut我在用注解实现spring的AOP时遇到这个异常,提示无法找到切点,检查代码没有发现问题。 我的项目的jdk为1.7.0_07,解决办法是将项目的Jre改为jdk1.6; 然后程序运行正常了。核心代码:“` import org.as

2015-05-28 12:18:53 773

原创 MyEclipse安装aptana插件后出现 No more handles [Could not detect registered XULRunner to use]

MyEclipse10安装aptana插件后出现 No more handles [Could not detect registered XULRunner to use],出现这个问题后去https://developer.mozilla.org/en-US/docs/XULRunner_1.9.2_Release_Notes  下载了XulRunner for windows ,官网上说

2015-05-27 11:34:45 1466

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除