- 博客(98)
- 收藏
- 关注
原创 【转】Android Kotlin协程 coroutines 理解
前言1 都有哪些坑?1.1 定义的坑1.2 中文文章的坑2 官方文档走一波?2.1 英文阅读恐惧症2.2 官方文档也有坑?2.3 我是这么阅读官方文档的2.3.1 小节标题隐藏的秘密2.3.1.1 Dependency info2.3.1.2 Executing in a background thread2.3.1.3 Use coroutines...
2021-03-30 10:59:00
141
原创 Android 主Module引用依赖Module,却无法使用里面的依赖库
如果模块化开发中遇到多模块的AndroidManifest.xml没有合并or多模块的资源文件没有合并or模块A include了模块B,而无法使用模块B内依赖的其他aar包中的类的时候or提示Support包版本不一致这篇文章可能就是你要的解决方案~举个栗子:比如我们现在有一个App模块设计为:主工程: app模块: ui , framework引入模块的方式:在set...
2019-11-19 13:59:00
1220
原创 【转载】Android性能优化之渲染篇
下面是渲染篇章的学习笔记,欢迎大家一起学习交流!1)Why Rendering Performance Matters现在有不少App为了达到很华丽的视觉效果,会需要在界面上层叠很多的视图组件,但是这会很容易引起性能问题。如何平衡Design与Performance就很需要智慧了。2)Defining ‘Jank’大多数手机的屏幕刷新频率是60hz,如果在1000/60=...
2019-11-11 15:39:00
184
原创 从graphql endpoint获取schema文件
graphql server端有更新,client端需要重新获取schema文件用于创建新的api request,下面简要记录如何从graphql endpoint获取schema文件 You can simply install the CLI usingnpmoryarnby running the following command. This will add th...
2019-09-13 00:06:00
540
原创 Android 音频播放速率调整实现
最近接触到的一个项目, 有音频播放、切换播放速率和拖动进度到某处播放的需求 ,由于之前只是见过并没有尝试过切换播放速率 , 于是开始调研并最终实现,下面简单记录一下这次的调研过程。MediaPlayer播放音频最先想到的就是MediaPlayer这个Android提供的原生API了,在Android 6.0+(23+)MediaPlayer可以通过setSpeed来改变播放速率...
2019-06-29 00:37:00
1196
原创 [转]Spring Security Oauth2 认证流程
[转]Spring Security Oauth2 认证流程 1.本文介绍的认证流程范围本文主要对从用户发起获取token的请求(/oauth/token),到请求结束返回token中间经过的几个关键点进行说明。2.认证会用到的相关请求注:所有请求均为post请求。获取access_token请求(/oauth/token)请...
2019-06-03 09:16:00
917
原创 SpringBoot中使用POI,快速实现Excel导入导出
SpringBoot中使用POI,快速实现Excel导入导出 导出Excel整体来说,Excel有.xls和.xlsx,那么在POI中这两个也对应两个不同的类,但是类名不同,方法基本都是一致的,因此我这里将只介绍.xls一种。整体来说,可以分为如下七个步骤:1.创建Excel文档HSSFWorkbook workbook = new...
2019-06-03 09:14:00
248
原创 CAS客户端认证流程
CAS客户端认证流程 CAS登陆流程Step 1:浏览器向CAS客户端发起登陆请求,CAS客户端生成“登陆URL”,并把浏览器重定向到该URL登陆URL: https://${cas-server-host}:${cas-server-port}/cas-server/login?service=${client-service-url}...
2019-06-03 09:10:00
618
原创 Spring boot发送邮件
Spring boot发送邮件 最近接到一个需求:分配任务给用户时,发送邮件提醒用户。后端应该和Andorid一样有现成的api支持,浏览器里搜索了下,果不其然,很轻松就实现了这个功能,现在记录下。首先添加Maven依赖<dependency> <groupId>org.springframewor...
2019-04-18 15:40:00
151
原创 微信小程序-开发入门(一)
微信小程序-开发入门(一) 微信小程序已经火了一段时间了,之前一直也在关注,就这半年的发展来看,相对原生APP大部分公司还是不愿意将主营业务放到微信平台上,以免受制于腾讯,不过就小程序的应用场景(用完即走和二维码分发等)还是很值得我们学习的,技术上面如果了解React的话,会发现他们在组件化上面有很多雷同之处。说白了,小程序就是基于微信平台的H5轻...
2019-01-07 09:22:00
2389
2
原创 JPA中的一对多双向关联与级联操作
学习Spring有两周时间了 , 个人觉得服务端主要实现的是数据关系的维护和数据结构的制定 , 以及由业务需求产生的CRUD , 只要保证对前端提供的接口稳定高效响应 , 具体的前端实现完全不关心.这个是接触后端的一个感受 , Spring boot使用了特定的方式来进行配置 ,大大简化了后端开发人员的开发工作量 ,比如JPA:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所...
2018-12-24 09:18:00
413
原创 圆形Camera预览实现
需求最近有个需求要求界面上使用圆形相机预览进行面部检测 , 具体需求如下图关于Camera之前接触得比较多 , 主要就是通过SurfaceView显示预览视图 , 因此需要展示圆形预览界面, 只需要控制SurfaceView的显示范围就可以了.实现由于较为简单 , 下面我们直接给出实现代码:import android.app.Ac...
2018-12-03 09:04:00
1036
2
转载 [转]自定义Drawable实现灵动的红鲤鱼动画(下篇)
小鱼儿 上篇文章自定义Drawable实现灵动的红鲤鱼动画(上篇)我们绘制了可以摆动身体的小鱼,本篇就分享一下如何让小鱼游到手指点击的位置。用到的主要技术如下: 1)、三阶贝塞尔曲线2)、Path的Measure一、动画分析小鱼的行走不是简单的位移,不难看出在小鱼位移的同时身体的角度还随着前进的方向而变化,所以本篇要解决如下两部分:1)、鱼身的位移2)...
2018-11-30 15:58:00
314
转载 [转]自定义Drawable实现灵动的红鲤鱼动画(上篇)
此篇中的小鱼动画是模仿国外一个大牛做的flash动画,第一眼就爱上它了,简约灵动又不失美学,于是抽空试着尝试了一下,如下是我用Android实现的效果图: 小鱼儿由于整个绘制分析过程比较繁琐所以灵动的红鲤鱼准备做成上下两篇,本篇是小鱼儿绘制的实现篇,第二篇是小鱼儿游动控制篇下篇传送门。本篇实现如下效果: 原地摆尾版 绘制实现篇用到如下主要的技术:1)、自定义...
2018-11-30 15:52:00
163
原创 EventBus源码分析
一、 EventBus简介1.1、EventBusEventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化Android 事件传递,这里的事件可以理解为消息,本文中统一称为事件。事件传递既可用于 Android 四大组件间通讯,也可以用户异步线程和主线程间通讯等等。传统的事件传递方式包括:Intent、Ha...
2018-11-12 09:15:00
192
原创 Camera 预览变形问题解决
最近开发一款自定义相机采集照片的demo,花了一个上午开发了一个在测试机上功能正常的apk连同测试机一起交付(需求方反馈没有Android设备),然而晚上被喊去说是在华为畅玩某型号上预览会变形,拍到的图片边界都移位了,只要加个班处理一下机型适配的问题。根据开发经验,防止预览图像变形的终极奥义就是保持照相机硬件支持的某个size(每个特定的手机都有其支持的cam...
2018-10-29 08:58:00
1697
原创 使用javacv录像,同时进行讯飞声纹认证
由于最近的demo中需要在活体检测的同时进行音视频录制 , 尝试使用MediaRecord和camera来录制视频 , 然而Camera.onPreviewFrame 不能与 MediaRecord同时调用。活体检测的原理其实是把camera的预览回调onPreviewFrame(byte[] data, Camera camera) 中的图片数据data作为参...
2018-10-15 08:59:00
650
原创 Camera2必知必会
引言一切源于在项目过程中的一个Bug:我的需求是在MainActivity 实现自动预览,也可以点击跳到签到SignedActivity去实现拍照签到,第一次进入界面的时候都是正常的,但是有时候返回来的时候预览失败,即从MainActivity跳转到SignedActivity偶尔预览失败和从SignedActivity返回MainActivity偶尔失败,都...
2018-10-08 09:23:00
976
原创 将博客搬至CSDN
将博客搬至CSDN
2018-09-25 17:16:00
130
原创 Flutter混合工程改造实践
背景 6月下旬,我们首次尝试用Flutter开发AI拍app。开发的调研准备阶段没有参考业界实践,导致我们踩到一些填不上的坑。在这些坑中,最让我感到棘手的是Flutter和原生页面混合栈管理的问题。为了解决这一问题,我们对Flutter工程进行了一些改造。问题的发现 在完成主要功能后,我们提交了1.0.0内测版本。经测试人员发现该问题,并...
2018-09-25 09:22:00
1613
原创 Android工程内嵌Flutter
本文记录一下Android主工程中嵌入部分Fluttter页面的实现方法。创建一个Android工程模拟你的现有工程为了让Android工程和Flutter工程互不干扰,这里不再以Android工程为工程的跟目录,而是让Android工程和平级的Flutter工程的公共目录作为根目录。 最终的目录结构应该是下面这样的你的项目根目录(随便什么你喜欢的地方)...
2018-09-10 08:49:00
232
原创 讯飞语音唤醒SDK集成流程
唤醒功能,顾名思义,通过语音,唤醒服务,做我们想做的事情。效果图(开启应用后说讯飞语音或者讯飞语点唤醒)源码下载地址:http://download.csdn.net/detail/q4878802/9023213步骤1. 创建应用,开通服务地址:http://blog.csdn.net/q4878802/article/details...
2018-09-03 09:20:00
2733
原创 Flutter混合栈的管理
Flutter出现的目的旨在统一Android/IOS两端编程,因此完全基于Flutter开发的App,只需提供一个包含FlutterView的页面,后续页面增加/删除/跳转均在FlutterView的Navigator中进行管理。但现在闲鱼只是将部分模块修改成Flutter开发,我们不可能为统一页面栈管理而将其他所有页面用Flutter重做一次,权衡成本与风险,...
2018-08-27 09:01:00
2297
原创 Android调用系统拍照裁剪和选图功能
最近项目中用到修改用户头像的功能,基本上都是模板代码,现在简单记录一下.调用系统拍照 private fun openCamera() { //调用相机拍照 // 创建File对象,用于存储拍照后的图片 var outputImage = File(externalCacheDir, "output_image.j...
2018-08-13 09:18:00
158
原创 Android DataBinding库(MVVM设计模式)
什么是MVVM说到DataBinding,就有必要先提起MVVM设计模式。Model–View–ViewModel(MVVM) 是一个软件架构设计模式,相比MVVM,大家对MVC或MVP可能会更加熟悉。MVC:(VIew-Model-Controller)早期将VIew、Model、Controller代码块进行划分,使得程序大部分分离,降低耦合。MVP:...
2018-08-06 09:17:00
131
原创 Flutter 动画使用
旋转动画 透明度变换动画 在Android中,可以通过View.animate()对视图进行动画处理,那在Flutter中怎样才能对Widget进行处理 在Flutter中,可以通过动画库给widget添加动画。在Android中,您可以通过XML创建动画或在视图上调用.animate()。在Flutter中,您可以将widget包装到Animation中。...
2018-07-30 08:45:00
549
原创 Android相机基础基于camera2API
Android相机基础基于camera2API 前言最近,在使用Android做一个照相机的开发。因为不能使用系统提供的相机应用,所以只能自己写一个。Android以前提供相机的api叫camera,不过在level 21被Google抛弃了。网上的教程,还有很多都是使用camera的,为了好好学习一下camera2,就去扒了Google提供的...
2018-07-23 09:59:00
471
原创 利用 Android 系统原生 API 实现分享功能
利用 Android 系统原生 API 实现分享功能这篇文章提供一个封装好的 Share2 库供大家参考。GitHub 项目地址:Share2大家知道,要调用 Android 系统内建的分享功能,主要有三步流程:创建一个 Intent ,指定其 Action 为 Intent.ACTION_SEND,表示要创建一个发送指定内容的隐式意图。然...
2018-07-16 09:02:00
1312
原创 Android下文件的压缩和解压(Zip格式)
Zip文件结构ZIP文件结构如下图所示, File Entry表示一个文件实体,一个压缩文件中有多个文件实体。文件实体由一个头部和文件数据组,Central Directory由多个File header组成,每个File header都保存一个文件实体的偏移,文件最后由End of central directory结束。用到的类ZipFile此类用...
2018-07-09 08:49:00
732
原创 Flutter网络请求与JSON解析
本文介绍如何在Flutter中创建HTTP网络请求和对请求的json string进行类型解析.网络请求官方使用的是用dart io中的HttpClient发起的请求,但HttpClient本身功能较弱,很多常用功能都不支持。建议使用dio 来发起网络请求,它是一个强大易用的dart http请求库,支持Restful API、FormData、拦截...
2018-07-02 09:19:00
4545
1
原创 使用平台通道编写平台特定的代码
使用平台通道编写平台特定的代码本指南介绍如何编写自定义平台特定的代码。一些平台特定的功能可通过现有软件包获得; 请参阅使用 packages。框架概述: 平台通道平台通道数据类型支持和解码器示例: 使用平台通道调用iOS和Android代码Step 1: 创建一个新的应用程序项目Step 2: 创建Flutter平台客户端Step 3a...
2018-06-25 08:55:00
337
原创 Flutter常用布局组件
Flutter控件本身通常由许多小型、单用途的控件组成,结合起来产生强大的效果,例如,Container是一种常用的控件,由负责布局、绘画、定位和大小调整的几个控件组成,具体来说,Container是由LimitedBox、ConstrainedBox、 Align、Padding、DecoratedBox和Transform控件组成,而不是将Container子...
2018-06-19 08:46:00
683
原创 SurfaceView绘制录音波形图
本文简单记录由View绘制转为SurfaceView绘制的波形图问题.上代码: 1 public class VoiceLineView extends View { 2 private final int LINE = 0; 3 private final int RECT = 1; 4 5 private in...
2018-06-11 09:05:00
393
原创 android 蓝牙SPP协议通信
准备1.蓝牙串行端口基于SPP协议(Serial Port Profile),能在蓝牙设备之间创建串口进行数据传输 2.SPP的UUID:00001101-0000-1000-8000-00805F9B34FB 3.Android手机一般以客户端的角色主动连接SPP协议设备连接流程1.检测蓝牙状态 若蓝牙未打开,则打开蓝牙~bluetoothAdapte...
2018-06-04 08:38:00
5072
原创 好用的Android屏幕适配
前言网上关于屏幕适配的文章已经铺天盖地了,为什么还要讲?因为网上现在基本都是使用px适配,即每种屏幕分辨率的设备需要定义一套dimens.xml文件。再加上有些手机还有虚拟按键(例如华为),这样就还需要每个有虚拟按键的设备加多一套dimens.xml文件,再加上平板那些你会发现dimens.xml文件所占的体积已经超过2M了!这绝对不是我们想要的。这里要讲的...
2018-05-28 08:59:00
343
原创 极光推送sdk使用
创建应用进入极光控制台后,点击“创建应用”按钮,进入创建应用的界面。 填上你的应用程序的名称以及应用包名这二项就可以了, 最后点击最下方的 “创建我的应用”按钮,创建应用完毕。 创建应用 填写应用程序的名称以及上传图标 创建成功 添加应用包名jcen...
2018-05-21 08:56:00
476
原创 Android Tint着色与帧动画结合
需求最近遇到一个需求: 要求根据后台接口给的色值 显示不同色值的帧动画(UI给了三张透明色的图) 正常的帧动画 是配置在xml里三张静态图片 然后加载一下就完事了现有的静态图片是透明的 还没有填充颜色 Tint着色 val drawableVoice = DrawableCompat.wrap(ContextCompat.getDraw...
2018-05-13 19:13:00
271
原创 无埋点数据收集和adb monkey测试屏蔽通知栏
简单记录百度移动统计android无埋点sdk使用和monkey测试屏蔽通知栏的问题 1.无埋点sdk使用很简单,下载完sdk后导入到项目中 , 参考sdk文档进行就可以了,个人觉得比友盟还简单,几行代码实现无埋点可视化圈选.这里是文档地址 可视化圈选SDK接入值得注意的是 从编译项目并启动运行开始,5分钟左右后即可在百度移动统计网站上看到对应的启动数据...
2018-05-06 13:44:00
1478
原创 Android 微信支付,授权,分享回调区分记录
我们做项目中避免不了和微信打交道,其中最常用的也就是授权登录与分享和支付了。本篇文章记录这三个功能同时使用的时候,回调怎么来区分。因为每个功能都有自己的回调状态。前期集成与发送,资料很多了就不在这里记录了。接收回调首先要写一个WXEntryActivity,实现IWXAPIEventHandler接口。activity的oncreate方法中实例化IWAPI...
2018-05-02 08:45:00
455
原创 Android布局基础
布局过程的含义布局过程,就是程序在运行时利用布局文件的代码来计算出实际尺寸的过程。布局过程的工作内容两个阶段:测量阶段和布局阶段。测量阶段:从上到下递归地调用每个 View 或者 ViewGroup 的 measure() 方法,测量他们的尺寸并计算它们的位置; 布局阶段:从上到下递归地调用每个 View 或者 ViewGroup 的 layout() ...
2018-04-23 09:08:00
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人