- 博客(21)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android--百行代码写出EventBus(超详细)
百行代码手撸EventBus背景用法思路背景Android开发中,EventBus是目前比较流行的消息总线框架。在当下流行的模块化、组件化中也扮演着重要作用。相信其原理小伙伴们也都了解。它的核心逻辑其实仅需百余行代码即可写出。今天我们就来手撸一次EventBus简易版框架。用法在手撸框架之前,我们需要先定义一下框架的用法。这里我们仿EventBus的用法,详情如下:1、在对象初始化时需要...
2019-12-09 10:44:08
224
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java-五种排序算法实现
前言这篇我们会介绍比较简单的五种排序算法:插入排序、冒泡排序、快速排序、选择排序、归并排序的原理及Java代码实现。关于实现,我们先定义算法外的方法:打印数组方法: private static void printNums(int[] nums) { for (int i = 0; i < nums.length; i++) { if ...
2019-10-24 16:20:16
297
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android--基于PopUpWindow的弹框Demo:PopUpDialog
PopUpDialog弹框背景用法后续规划总结背景Android中,很常见的功能就是弹框,而弹框又有许多不同的需求,比如视频全屏播放时屏幕四周弹出的控制栏、可以随意拖动的悬浮框、上拉/下拉列表等等。而这各类弹框,都可以用PopUpWindow来实现。接下来就分享一款使用indow实现的弹框Demo(PopUpDialog)。用法我们首先来看看该项目的效果:上述图片中,共展示了四种弹框方...
2019-10-21 16:58:43
708
原创 Android车载蓝牙相关开发4:蓝牙电话操作器BluetoothHeadsetClient
蓝牙电话客户端可以实现电话的基础操作。其中像语音识别、私人模式等功能我并未使用过,如有文中有误,欢迎指正。
2022-09-30 10:26:52
4527
5
原创 Android车载蓝牙相关开发3:蓝牙音频接收器BluetoothA2dpSink
蓝牙音频协议不止用于车机。音频接收端如果是安卓设备,都可以使用该代理来进行操作(例:安卓智能音箱)。
2022-09-15 16:06:08
3213
原创 Android车载蓝牙相关开发2:蓝牙总入口BluetoothAdapter
学习蓝牙,首先从BluetoothAdapter开始。它可以进行蓝牙的开关、发现,及基本信息及状态的获取,也是各个协议代理类的入口。操作蓝牙各个协议都需要从这里开始。
2022-09-14 16:16:23
1893
原创 Android车载蓝牙相关开发1:概述及准备
本系列主要用于分享基于Android开发通用车载蓝牙的准备及相关接口。其中包含开发前的准备阶段及相关蓝牙协议、操作接口以及蓝牙电话相关内容。根据上述的资料及地址,其实已经可以独立开发一个完整车载蓝牙app了。后续会对蓝牙客户端功能分模块逐一详解。
2022-09-14 11:12:47
2373
原创 仿RXJava功能--Android自制流处理框架思路及实现
最近重温了RxJava的机制,且正在学习结构化思维。故打算以结构化思维的方式,从零开始自己编写一个与RxJava功能接近的Android框架练手。在阅读该文章之前,我们至少应该掌握Java语法基础、Android开发基础、泛型、观察者模式、Rxjava概要。本文主要用于锻炼思维,暂不引入注解、反射、APT等框架常见优化技术,仅以纯Java代码方式设计。本节我们将一步一步开设设计与实现我们自己的架构。我们需要从RxJava解决了什么、设计并实现自己的框架、复盘与改进三大方面来一步一步完成我们的框架。###
2022-06-24 14:12:13
556
原创 Android WebView 视频播放,全屏按钮不显示或灰显解决方案
Android WebView 视频播放,全屏按钮不显示或灰显解决方案背景问题定位背景在Android开发中,遇到了如下问题:Activity内嵌WebView,加载有视频的页面时,视频无法全屏播放。全屏按钮不显示或者灰显。故记录一下此次问题解决过程。问题定位在Android官方文档上对问题所述场景有如下解释:其大意为:1. 要打开硬件加速2. 设置 WebChromeCli...
2019-10-21 16:42:46
9286
4
原创 Android深入--Snackbar用法及源码解析
什么是Snackbar?Google退出Matrial Design已经有一段时间了,其中有一款控件,叫做Snackbar。那么它是做什么的呢?开发过Android的童鞋们应该对Toast不陌生了,Toast是一款用于在屏幕上显示提示信息的控件。而Snackbar,可以理解为Matrial Design风格的Toast,并且在功能上也有了一定的加强。废话不多说,上图:图中屏幕下方弹出的框...
2019-09-24 15:35:02
749
原创 RxJava+Retrofit网络请求框架基本用法
背景当前Android新的框架越来越多,RxJava+Retrofit进行网络请求的框架尤为突出。故本次整合了RxJava+Retrofit进行网络请求最基本的用法。框架简介RxJava: 基于观察者模式的,链式调用方式的异步编程框架。观察者模式,包含观察者(Observer)、被观察者(Observable)。两者之间绑定(subscribe)后即可由观察者去观察被观察者的行为。观察者在...
2019-03-28 21:13:51
271
原创 Anroid深入--TextView不定长度的文字显示适配方案
背景当我们编写APP的时候,可能会涉及多语言的问题,不同语言下的相同字段,其长度不尽相同;也可能会遇到动态展示一条长度不固定的信息。而不同的长度的TextView可能会引起布局被挤压,文字显示不全、重叠等异常。严重者则可能遮挡按钮,造成功能异常。方案当前,Google的TextView功能已经非常完善,合理应用其参数,仅从布局层面就足以适配大多数文字长度不固定的情况。目前比较通用的方案有:1...
2019-01-31 16:39:00
1214
原创 Android深入--Handler机制简析(Handler、Looper、MessageQueue)
背景首先,我们都知道,在安卓中,不可以在子线程中更新UI,如果希望在子线程执行过程中更新UI,则必须使用Handler。那么,什么是Handler呢?Handler是否只是用于更新UI呢?Handler更新UI原理 上述的子线程使用Handler更新UI,为什么就可以呢?答案是更新UI的Handler是在主线程中。耗时操作交给了子线程,子线程耗时操作结束后,只需要发送一个消息给主线程,主线程
2017-11-19 21:43:51
418
原创 Android应用稳定性优化--快速点击产生异常的解决思路
背景在安卓开发中,经常会遇到这样的问题:快速点击某个按钮的时候,由于点击事件中有异步操作、或者必须放在主线程但是又比较耗时的操作时,会出现卡顿、数据异常、崩溃、未响应等问题。工作中也遇到了不少类似的问题,所以在此总结一下这类问题的几种解决思路。 案例 假设有一个App,有四个A控件,其中必须且只有一个为选中状态。而在另一个B控件中,需要实时显示并修改选中控件关联的一些参数信息,而这些参数信息需要
2017-11-12 22:43:38
649
原创 Android之路——第二步:Activity之间传值(Intent、onActivityResult)
我的博客:http://blog.csdn.net/name_cjf前言上一篇博客中我们了解了如何切换Activity,然而一个真实的app中,不仅需要可以切换Activity,还需要使Activity之间可以通信。所以今天就讲讲Activity的传值。传值方法简介关于Activity传值,其实是很灵活的,其中大概有以下几类传值方法:Intent传值:这是Android中最普通的传值方式,Int
2017-10-08 16:34:28
516
原创 Android性能优化之--ViewStub
我的博客:http://blog.csdn.net/name_cjf使用背景:我所在公司的一个App,由于界面布局复杂,导致启动时间或者界面切换均较为卡顿,而由于布局中所有控件均有其作用,所以无法直接简化布局,不过有很多布局确是一开始为不可见状态,特定情况下才会显示。所以就想:目前Android加载布局,会把不可见的布局也一起加载。有没有一种方法可以使刚开始用不着的控件不去加载,需要的时候再加载呢?
2017-10-06 16:01:23
361
原创 Android之路——开发环境变更:WIN10、AndroidStudio
我的博客:http://blog.csdn.net/name_cjf前言在开始正式学习之前,需要注意一下,我的工作环境工WIN7/Eclipse变更为了WIN10/AndroidStudio。其中WIN7变为WIN10其实影响并不大,WIN10只是性能及UI方面做了些优化,对目前安卓开发来说影响不大。不过AndroidStudio用法则与Eclipse有着很大的不同。下面主要介绍下两者的区别。And
2017-04-19 22:58:23
2182
原创 Android之路——重启说明
我的博客:http://blog.csdn.net/name_cjf说明前段时间因为有事情,所以放弃了博客的撰写,今天开始,有空我就会写写基础的东西,并且最近筹备开发一个情侣间沟通的app练练手,以后也当做自己的一个个人作品,特此说明。
2017-04-18 23:50:08
493
原创 Android之路——第一步:Activity之间切换(Intent、点击事件)
我的博客:http://blog.csdn.net/name_cjf前言在上一篇博客中,大家应该清楚了如何显示一个Activity,那么,如果要显示两个Activity,并且可以相互切换,这该怎么做呢?下文介绍实现该目的的基本方法。由于上节课已经将eclipse创建Android项目以及编写简单的代码做了详细介绍,所以以后关于讲过的操作不在赘述。Activity之间切换首先,我们创建两个布局(L
2015-11-06 22:20:15
6682
原创 Android之路-启程2:Android开发环境简介以及编写第一个应用程序“HelloWorld”
我的博客:http://blog.csdn.net/name_cjf1:Android开发环境简介如果你从未接触过Android,那么可以参考我的这篇文章,如果有一定的基础,那么可以直接跳过。首先,我介绍几个关于Android开发环境的基本名词:1、eclipse:这是一个开发平台(软件),写Android代码就在这个软件中写,当然,学习安卓的基础是有Java基础功底,所以没学过Java的小伙伴们
2015-11-02 13:46:53
787
1
原创 Android之路-启程1:前言以及为什么看好Android
转载请注明出处:http://blog.csdn.net/name_cjf前言: 我是一名大四的学生,前不久刚找到工作。以后就是一名Android开发工程师了。从今天开始,我想将我的Android经验发表出来,来帮助Android的初学者。或者解答一些常见的问题。 今天,我就简单说说我为什么看好Android。主要原因可以归为一下几类:Android开发商是Google,其实
2015-11-01 09:57:15
470
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人