自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

独孤求败

______________刚的耶匹!!!

  • 博客(49)
  • 资源 (4)
  • 收藏
  • 关注

原创 进来先放松下嘛,我来开源一首歌曲。

来放松。

2017-06-15 17:24:13 538

原创 Android BLE 开发,GATT报错 status 133全面解析

困扰了一天的问题。这里,全部参考google 官方文档 BLE开发。但是事与愿违,最终出现了133的问题。参考了很多网上的攻略,无一幸免。这里声明一下,这篇博客仅仅针对有一定蓝牙开发基础的同学。1 status = 133 出现的原因是什么出现的原因是因为,频繁建立连接,导致连接占用的资源太多2 版本兼用性问题由于android的碎片化比较严重,机型与版本的不同。解决方案:在建立gatt连接的回调监听中,当连接失败的时候,去回收资源针对6.0 一下和6.0以上的做兼容处理

2020-06-15 21:06:35 6752 2

转载 Android蓝牙开发【十】A2DP源码分析

上一篇说了下A2DP的一些基本操作,这篇分析下系统应用、系统源码是如何操作A2DP的。尤其是其连接过程,基于Android4.3源码。Andorid手机一般都是做为A2DP Audio Source端。1 连接过程媒体音频也就是A2DP,首先连接的蓝牙设备需要支持A2DP协议(并且做为A2DP Audio Sink端),并且需要与该设备进行配对,如何进行

2017-12-06 11:03:27 879

转载 Android蓝牙开发【九】A2DP基本功能

本文主要是Android做为Audio Source端,A2DP的基本操作:包括连接、断开连接、设置优先级、获取优先级、获取A2DP连接状态、获取A2DP连接的设备列表等功能。1 简介A2DP全名是Advanced Audio Distribution Profile,高质量音频数据传输的协议,其定义里了传送单声道或立体声等高质量音频(区别于蓝牙SCO链

2017-12-06 10:56:12 797 1

转载 Android蓝牙开发【八】hfp接听、挂断电话

继续研究hfp相关功能。蓝牙耳机可以控制手机接听、拒接、挂断电话,拨打电话等功能。本文主要分析下起这些操作的大致流程。 在系统应用Bluetooth中com_android_bluetooth.cpp提供了多个回调方法,由hardware、协议栈回调过来。蓝牙耳机的一些控制命令都会发到这里。本文基于Android4.3源码。1 接通电话蓝

2017-12-06 10:49:12 2310

转载 Android蓝牙开发【七】hfp音频连接

接着上一篇hfp连接继续,查看蓝牙通话时如何进行处理的。hfp连接有两个连接,一个是hfp连接(在设置界面显示的是手机音频),另一个是蓝牙通话时进行的音频连接。这篇说下第二个连接,音频连接处理过程。该文章是基于Android源码4.3的1 连接音频在手机音频正常连接时,接通电话,并选择蓝牙通话。从系统应用Phone开始分析。 代码路径:p

2017-12-06 10:42:29 2367

转载 Android蓝牙开发【六】hfp连接

本文主要内容是蓝牙手机音频的连接、断开流程分析,对应蓝牙HFP profile。该文章是基于Android源码4.3的1 hfp简单介绍HFP (Hands-free Profile),让蓝牙设备(如蓝牙耳机)可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要看蓝牙耳机及电话是否支持。HFP定义了音频网关(AG)和免提

2017-12-06 10:34:17 6875

转载 Android 蓝牙开发【五】OPP接收文件

这篇文章主要说一下手机是如何通过蓝牙接收文件的。1 创建rfcomm层sever要想通过蓝牙接收文件,首先要打开蓝牙。所以先从打开蓝牙进行分析。 BluetoothOppReceiver在AndroidManifest.xml文件中进行了注册,其中action包括”android.bluetooth.adapter.action.STATE_CHAN

2017-12-06 10:26:28 770

转载 Android蓝牙开发【四】OPP传输文件

Android蓝牙功能(传统蓝牙、ble、hid)这三方面功能之前的博客都已经写了。现在接着了解蓝牙OPP传输文件相关功能。Android手机使用中,经常会用到通过蓝牙分享文件给附近的朋友。那么具体是如何实现的,大部分朋友都不是很清楚。看一下源码是如何实现该功能的。1 BluetoothOppLauncherActivityAndroid手机点击

2017-12-06 10:15:55 1371 2

转载 Android蓝牙开发【三】蓝牙Hid开发

最近客户需求,android系统的一个设备,想连接一个扫描枪(类似蓝牙键盘,只支持hid协议),并且可以收到其数据,填写到输入框中。我这里借了一个蓝牙鼠标,用来与android设备连接。                                                                                                         

2017-12-06 10:03:35 986

转载 Android 蓝牙开发【二】BLE开发 (Android4.3)

一、ble简单介绍BLE:  Bluetooth Low Energy,即蓝牙低功耗,它是一种技术,从蓝牙4.0开始支持。蓝牙低功耗芯片有两种模式:单模和双模。单模:只能执行低功耗协议栈,也就是只支持ble。双模:支持传统蓝牙以及ble的使用。较传统蓝牙:传输速度更快,覆盖范围更广,安全性更高,延迟更短,耗电低等优点。关键术语和概念:Gatt:(Generic Attr

2017-12-06 09:52:40 431

转载 Android 蓝牙开发 【一】

1 蓝牙基本操作随着可穿戴设备的流行,研究蓝牙是必不可少的一门技术了。总结了下蓝牙开发使用的一些东西分享一下。蓝牙权限首先需要AndroidManifest.xml文件中添加操作蓝牙的权限。<uses-permissionandroid:name="android.permission.BLUETOOTH" />允许程序连接到已配对的蓝牙设备。<uses-per

2017-12-06 09:35:24 540 3

原创 Android Studio 3.0 填坑之依赖报错。

Error:java.lang.RuntimeException: Annotation processors must be explicitly declared now.  The following dependencies on the compile classpath are found to contain annotation processor.  Please add t

2017-10-27 09:47:22 6364 1

原创 一个设计比较广泛的Android开发文档

http://hukai.me/android-training-course-in-chinese/basics/index.html

2017-09-01 10:48:11 947

原创 Android 基于Gridview 实现日历选择,扩展性高,要自行扩展

更新--------》》》》》》》》》第二版本:新版本本给予Calender的高效日历加载 以下是当年硬编码写的一个日历,可用,上面是最近优化的时候写的新版本,已经链接到了我的github上 --------------------------------------------------这是时间分割线---------------------------------------...

2017-08-09 20:45:54 414

原创 Android 开发规范

Android开发规范———————————1.0 created by JiaJie 2017.7.24 目录 Android开发规范10 created by JiaJie 2017724目录1IDE选择规范2版本统一规范3第三方库规范4命名规范1包名2类名3方法名4常量名5非常量字段名6参数名7局部变量名8临时变量名9类型变量名5资源文件规范1

2017-07-24 14:12:32 833

原创 React Native 打包发布

React Native 打包发布http://localhost:8081/index.android.bundle?platform=amdrpid;当应用启动运行的时候,会自动拉取这个bundle文件,该文件里存放的是全部的逻辑代码,在目录中并不存在这个文件,事实上,这个地址只是一个请求地址,而并非真正的静态资源文件,是通过包服务器packager通过动态分析index.andr

2017-07-17 14:30:47 340

原创 React 组件声明生命周期

React 组件声明生命周期在执行 React.createClass后执行创建阶段:getDefaulfProps : 处理props的默认值在执行ReactDOM.render后执行 实例化阶段:getInitakState:得到初始化组件的state值,返回值会赋赋值给this.statecomponentWil

2017-07-17 10:14:03 469

原创 JSX语法入门

JSX 入门JSX并不是一门语言,仅仅是个语法糖,允许开发者在JavaScript中是写HTML语法,最后每个HTML标签都转化为JavaScript代码来运行。环境载入方式标签与HTML标签与ReactJS创建的组件类标签(首字母一定要大写) 转换解析器输入 转换成:React.createElement("h3","null","输入"),返回一

2017-07-14 15:29:23 383

原创 FlexBox 布局属性概念梳理

React Native 之 Flexbox布局简介:Flexbox 是Flexible Box 的缩写,翻译过来就是“弹性布局”,用来为盒状模型提供最大的灵活性。 是2009年由W3C提出的一种新方案,来实现浏览器上的各种伸缩等页面布局,截止到目前,基本大多数都支持这种方案。前提概念盒状容器默认存在两根轴:水平主轴和垂直交叉轴。主轴的开始位置(与边框的交叉点)叫做 mian st

2017-07-13 17:45:01 297

原创 react native 运行Android Error watching file for changes: EMFILE问题解决( Mac os)

红屏下的提示信息大家都能看懂,无非就是让你修改一下 host 或者 port 。但是你会发现,当你把这些都搞了还是红屏的时候,那就有点蛋疼了,结果回头一看,在控制台还报错了凑合看吧,就是这么个错误。 这里错误的原因,是因为watchman 的原因。要将watchman 先卸载掉,然后从git 上克隆facebook 的工程到本地具体终端操作:(这段话摘自whatchman gith

2017-07-13 14:50:51 499

原创 Android Kotlin

谈起Kotlin,对于目前的Android届乃至Java届来说,算是一股清流。早在Google认这个儿子之前,其实Kotlin已经诞生了, 那是Kotlin还在发展阶段,大家对此褒贬不一,经过时间的推移,以及一次次的版本迭代,终于被Google赐予了名分。在网上看了一篇文章,Google的十几名开发人员对于Kotlin一致好评。确实,对于传统Java开发来说,从繁琐的编码过程中解救了出来了,让

2017-07-11 15:45:40 563

转载 Android Service真正的完全详解

Service全部内容基本会在本篇涉及到,我们将围绕以下主要知识点进行分析:Service简单概述Service在清单文件中的声明Service启动服务实现方式及其详解Service绑定服务的三种实现方式关于启动服务与绑定服务间的转换问题前台服务以及通知发送服务Service与线程Thread的区别管理服务生命周期的要点Android 5.0以上的隐式启动问题及其解决方案保证服务不被杀死的

2017-07-10 16:45:28 295

转载 贼透彻的 activity 启动模式

Activity启动方式有四种,分别是:standardsingleTopsingleTasksingleInstance可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题。设置Activity的启动模式,只需要在AndroidManifest.xml里对应的标签设置Android:launchMode属性,

2017-07-10 16:23:14 149

原创 Android 性能优化之 布局优化

先广泛的说一下性能优化,如果是后台开发的话,内存溢出以及耗时算法可能引起性能上的问题。如果是移动端的开发的话,就多了这么一条,多了这么一层UI渲染。好吧,开头就是泛泛地说一下,那么,今天这篇博客的内容主要就是针对UI渲染上的优化。2015年的时候,Google发布了Android性能优化典范专题 。都是以短视频的形式,来帮助我们开发人员开发出更好的Android App。如果有兴趣的同学,可以

2017-07-06 14:19:45 181

转载 Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > com.android.bui

So I'm continuously receiving a gradle build error upon trying to run my project. I have searched for other solutions and some say that adding:packagingOptions { exclude 'META-INF/NOTICE'}

2017-06-30 15:00:43 325

原创 使用recycleview 实现viewpager 功能,并带有指示器。(仿高德交通路线规划实现)

最近项目中遇到了这么个需求,妈的竟然和高德地图实现一模一样的功能。因为保密性原则,我就直接上高德地图的截图了。首先这么一步操作,输入起始点,之后呢,就进入这个界面看到这里,大家应该清楚我说的需求吧,好吧,不讲逻辑,单单讲一下这个界面 实现。因为数据都是动态生成的,每次搜索的结果对应的list的大小和内容都是不一样的,所以呢,我们做这个

2017-06-29 17:11:57 3700 8

原创 使用 easypermission 来简化代码,实现Android动态权限申请

“动态权限申请”这个还是从6.0时代开始的,刚开始接触动态权限的小伙伴包括我,肯定是感觉很苦逼,因为要写一堆代码,才能把一些危险权限搞定。easypermission的出现大大的简化了我们的操作,提升了效率,内部的封装使得我们的代码减少了很多,下面我们来看一下它的自我介绍:简单的系统权限库,干掉6+++以上的系统权限问题。github 地址:https://github.com/jiezongne

2017-06-21 14:57:20 2748

原创 代码笔记(个人笔记,看懂就看,看不懂就不看)

private void showPicDialog(){ dialog = new Dialog(this, R.style.my_dialog); LinearLayout root = (LinearLayout) LayoutInflater.from(this).inflate( R.layout.item_dialog_picpic, null

2017-06-20 10:12:59 947

原创 retrofit 进行 URLencode 结果出现乱码。

大家应该对URLencode 并不陌生, 一种编码格式,多应在网络请求的数据层。java 底层封装的方式是java.net.urlencode.encode()这个方法(全靠记忆,写错多包涵)。这个类是将一个字符串转成不同编码格式的URLencode。我也是接触Retrofit不久,也在摸索之中,以往的项目中,都会进行URLencode转码的在,这次也是一样,结果就遇得到了坑,每次转码之后,都

2017-06-20 09:12:48 2390 2

原创 retrofit 自定义请求参数加密 和自定义响应解密 带你走出那些坑

首先,感谢一叶飘舟。给我灵感。以及他分享的博文,从源码的角度来实现参数的加解密。其次,也感谢这位这篇文章 :http://blog.csdn.net/zr940326/article/details/51549310 技术性人员就是不喜欢多啰嗦,直接来看代码吧。首先要了解这个东西   --------  ConverterFactory。这是retrofit 里面一

2017-06-15 11:36:56 5023

原创 Android 基于mina 实现 Socket 长连接

一,什么是长连接长连接顾名思义就是长时间持续的连接,想比较http,一次请求响应之后,连接就不在保持,即使当前比较流行的http请求框架,也只能尽量做到缓存这个层面。二,应用场景即时通讯、消息推送、实时位置上报、直播等等。。。三,mina介绍不知道的先百度百科一下这是官网四,用前准备下载jar包:1、mina-core-2.0.16.jar 

2017-06-06 11:19:54 1496 2

原创 设计模式笔记(二)----Builder模式

建造者模式将一个复杂对象的构建与让的表示分离,使得同样的构建过程可以创建不同的表示。模式的使用场景:1 .相同的方法,不同的执行顺序,产生不同的事件结果时;2.多个部件或零件,都可以装配到一个对象中,但产生的结果又不相同;3.产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候用建造者模式非常合适。Android源码中的建造者模式:

2017-06-02 10:09:55 256

原创 设计模式笔记(一)----单例模式

单例模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点。Singleton :负责创建Singleton类自己的唯一实例,并提供getInstance的方法,让外部来访问这个类的唯一实例。单例模式分为两种:1,饿汉式:private static Singleton sInstance = new Singleton();2,懒汉式:pr

2017-06-01 11:42:37 259

原创 android 常见的内存泄漏

内存泄漏大家都不陌生了,当应该释放的对象没有被释放的时候,不能被GC回收,就会引起内存泄漏,也就是OOM。1Java内存的分配原则java 程序运行时,内存分配分为三种情况,静态分配,栈分配,堆分配。他们分别对应的存储空间是静态存储区(方法区)、栈区和堆区。·静态存储区(方法区):主要存放静态数据,全局static数据和常量,这块内存在编译时就已经分配好,并且在程序整个

2017-05-26 09:27:49 272

原创 提高 service 存活率

提高service存活率

2017-05-25 10:40:46 401

转载 程序员 很装逼的头注释

写在前面的话:一时兴起就收集了以下神注释,希望能为广大ITer带来快乐,缓解你们工作中的压力,下面开车,先自爆头像,下文会给出制作链接。/**                                      *         瓦瓦            十              *        十齱龠己         亅瓦車己             *    

2017-05-19 10:00:18 3672 2

转载 Android 禁止emoji 表情

本文转自简书一位乐于分享的小伙伴。

2017-04-07 11:10:42 2997

原创 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.yinuo.parking.app.MyApplication"

完美解决:java.lang.RuntimeException: Unable to instantiate application com.yinuo.parking.app.MyApplication: java.lang.ClassNotFoundException: Didn't find class "com.yinuo.parking.app.MyApplication" on path: DexPathList[[zip file "/data/app/com.yinuo.parking-1/

2017-04-06 10:20:45 4985 4

原创 Android 实现简单轮询效果

首先举一个例子:       我们日常开发中,接触最多的就是吊起接口,接口成功的基础是基于一个无障碍的网络,有些时候,因为网络问题会导致接口调取失败,大家最长办的可能是在网络请求框架监听请求失败的里面吐司一下或者友好提示的更改一下界面(操作UI在主线程)。可能这个例子还不是很合适。        再举一个栗子,我们的需求里面有一个流程是必须执行的,只行完毕程序才可以继续进行下去,这个流程的

2017-03-20 13:41:15 4334

slf4j - api - 1.7.21.jar

mina 依赖jar包

2017-06-05

mina jar包

Android Socket 框架

2017-06-05

surfaceview 打标签修改版

基于surfaceview的绘制,实现标签功能

2017-04-25

MaterialPowerMenu

android 特效之界面切换

2016-10-09

空空如也

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

TA关注的人

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