自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JockeyJS——优秀的WebView与JS交互开源库使用和解析

前言在Android上,对于JS交互,往往是通过系统原生提供的@JavascriptInterface这种方式进行交互的,而本人在项目的应该也是使用这种方式。最近听朋友提到一个库——JockeyJS,封装了JS交互逻辑,通过少量的接口让开发者只需要关注Java和JS之间的方法调用。我对它避开@JavascriptInterface的实现比较感兴趣,后来发现JockeyJS有于Java和JS之间的方...

2018-07-07 21:10:00 999

原创 Flutter状态管理学习手册(三)——Bloc

一、Bloc 介绍Bloc 的名字比较新颖,这个状态管理框架的目的是将 UI 层和业务逻辑进行分离。Bloc 的复杂度处于 ScopedModel 和 Redux 之间,相较于 ScopedModel,Bloc 拥有分明的架构处于业务逻辑,相较于 Redux,Bloc 着重于业务逻辑的分解,使得整个框架对于开发来讲简单实用。二、Bloc 的层次结构Bloc 分为三层:Data La...

2019-05-02 16:12:47 1903

原创 Flutter状态管理学习手册(二)——Redux

上一篇讲到了一个简单的状态管理架构——ScopedModel, 当然,这种简单的架构会用在商业项目中的概率比较小,本篇则讲述另一个架构: Redux ,一个优雅且实用的状态管理框架。本篇 Demo 地址:https://github.com/windinwork/flutter_redux_app一、Redux 的准备工作Redux 的概念源于 React,对于不是从事前端工作或者...

2019-04-04 14:49:50 611

原创 Flutter状态管理学习手册(一)——ScopedModel

一、ScopedModel简介ScopedModel属于入门级别的状态管理框架,它的思想比较简单,参考官方文档便可以很容易理解其中构架。在Flutter中Lifting state up(状态提升)是十分必要的,状态提升可以理解为把组件之间相互共享的状态提取出来放在一个较高层级中管理的一种思想。ScopedModel提供了对于这种状态管理的便利。二、ScopedModel中的三个概念...

2019-04-02 15:12:40 678

原创 使用Gradle编写蒲公英自动上传安装包和更新说明脚本

Github: github.com/windinwork/…平时测试中发包的时候,笔者在打完包就直接拖到蒲公英上让它上传就完事了。不过前两天的会议上,测试小姐姐提出要在蒲公英上写明这次的测试包修改了什么内容。笔者一想到上传完包还要一个个打字说明在这个包我修改了什么,立即强烈拒绝!但是测试小姐姐再三要求,碍于这确实是个好提议和会上坐着的老大,只好勉为其难地答应发包时写上改动内容T_T。...

2018-11-23 09:50:44 655

原创 美团多渠道打包工具Walle源码解析

笔者现在在负责一个新的Android项目,前期功能不太复杂,安装包的体积小,渠道要求也较少,所以打渠道包使用Android Studio自带的打包方法。原生方法打渠道包大约八分钟左右就搞定了,顺便可以悠闲地享受一下这种打包方式的乐趣。但是,随着重的功能的加入和渠道的增加,原生方法打渠道包就显示有点慢了,所以集成了美团的多渠道打包工具Walle,顺便看了一下里面的实现原理。一、概述这一次...

2018-11-10 22:34:41 1005

原创 子弹短信没有附近的人?教你子弹短信开启附近锤友

 转载请标明出处https://blog.csdn.net/Two212250511/article/details/82215270子弹短信这款软件现在十分流行,新颖的界面友好的交互吸引了大量的新用户。但是,听说子弹短信还有“发现锤友”这一好玩的功能,但是很多小伙伴们没发现有这个功能,今天小编带你用另类的方法让附近锤友这个功能显示出来。一、为什么没有发现锤友功能目前发现锤友的...

2018-08-30 07:45:03 1258

原创 非侵入式无权限应用内悬浮窗的实现

前言一般的悬浮窗实现方式,需要申请权限,并还是要对部分机型进行适配才能正常显示。那么这里,我们换一种思路,实现一个不一样的悬浮窗。一、应用内悬浮窗实现思路通常的悬浮窗是通过WindowManager直接添加的,在不同的Android系统上需要做不同的适配,在Android6.0以上的机型上,还需要引导用户跳转到设置界面手动开启悬浮窗权限。虽然这样实现悬浮窗有完整的解决方案,但是开启...

2018-08-13 08:11:20 929

原创 关于安桌开发drawable下分置不同分辨率的图片资源

这几天对GitHub上开源的一个ViewPager控件感兴趣,自己试图写一个相同功能的Viewpager控件,在模拟器上运行发现页面切换的速度GitHub上的控件比自己写的明显流畅得多,对此疑惑。在多次比较功能代码无所发现后,考虑到是不是从那个开源项目中拷贝过来的资源文件问题。为什么省功夫,我把本来放在drawable-xhdpi文件夹下的图片资源直接复制到drawable下,当我将资源文件重新移

2016-08-02 17:48:15 478

原创 Java变量初始化顺序总结

1、静态成员变量2、父类中是抽象实现方法3、普通成员变量

2016-03-28 09:36:27 568 1

转载 (转)关于百度地图和高德地图,关于地图坐标系

原文作者: 深白Andy 原文地址: http://my.eoe.cn/gueryue/archive/15390.html 众所周知地球是一个不规则椭圆体,GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定。 基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面。基准面是在椭球体基础上建立的,椭球体可以

2016-03-28 09:29:05 3784

原创 设计模式用例

场景:多个应用有不同的多版本百度SDK,为封装一层通用的业务库,对其进行业务封装时进行统一的接口封闭,将不同版本的具体应用实现封装在接口的具体实现类中。可用Factory模式获取不同的具体实现类

2016-01-27 11:44:51 350

原创 java类的成员初始化顺序和初始化块知识

属性、方法、构造方法和自由块都是类中的成员,在创建类的对象时,类中各成员的执行顺序:1.父类静态成员和静态初始化快,按在代码中出现的顺序依次执行。2.子类静态成员和静态初始化块,按在代码中出现的顺序依次执行。3. 父类的实例成员和实例初始化块,按在代码中出现的顺序依次执行。4.执行父类的构造方法。5.子类实例成员和实例初始化块,按在代码中出现的顺序依次执行。6.执行子类的构

2016-01-25 14:58:31 348

原创 开源控件库

pengjianbo/GalleryFinalAndroid自定义相册,实现了拍照、图片选择(单选/多选)、 裁剪(单/多裁剪)、旋转、ImageLoader无绑定任由开发者选 择、功能可配置、主题样式可配置。GalleryFinal为你定制相册。

2016-01-25 14:43:00 497

转载 Android RecyclerView 使用完全解析 体验艺术般的控件

Android RecyclerView 使用完全解析 体验艺术般的控件标签: Recyclerviewpager瀑布流2015-04-16 09:07 123513人阅读 评论(158) 收藏 举报 分类:【Android 5.x】(7) 版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]

2016-01-23 11:08:55 1610

转载 Handler消息处理机制

Android消息处理机制(Handler、Looper、MessageQueue与Message)Android是消息驱动的,实现消息驱动有几个要素:消息的表示:Message消息队列:MessageQueue消息循环,用于循环取出消息进行处理:Looper消息处理,消息循环从消息队列中取出消息后要对消息进行处理:Handler平时我们最常使用的就是Messa

2016-01-23 10:55:52 1286

原创 Android ANR

ANR: Application not responding。在Android里,应用程序的响应性是由Activity Manager和WindowManager系统服务监视的 。当它监测到以下情况中的一个时,Android就会针对特定的应用程序显示ANR:1.在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸)2.BroadcastReceiver在10秒内没有执行完毕

2016-01-22 23:14:09 299

原创 Activity生命周期详解

子曰:溫故而知新,可以為師矣。《論語》学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精髓。近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下。熟悉javaEE的朋友们都了解serv

2016-01-22 22:52:55 677

原创 关于4.X系统使用安卓5.0Material风格AlertDialog全屏问题

鉴于安卓5.0以上采用的Material风格的AlertDialog对话框相比安卓5.0以下的对话框美观很多,我在开发中统一使用该风格的AlertDialog,为兼容Android4.X的系统,需要android.support.v7兼容包。一开始我所写的代码是:android.support.v7.app.AlertDialog.Builder builder = new AlertDial

2015-12-27 10:36:42 2772

原创 守护Android的Service后台服务

在应用开发中,我们难免会遇到要使Android应用的后台进程能够长期存活运行的需求,但由于安卓的特性和国内ROM定制厂商强力的一键清理功能,使得Android应用在切到后台一段时间后,就会被系统清理掉。下面整理出本人在Android开发中学习到的Service进程守护方法:1、提高Service优先级这是一种尊重Android原生系统设定的做法,通过Android系统本身提供的API和参数

2015-12-19 21:15:13 699

原创 Android蓝牙4.0读写数据返回状态码及出现异常解决办法

蓝牙4.0读写数据返回状态码:1、02、1293、133正常状态码:state == 0:当蓝牙4.0连接并读写数据成功时,得到state为0的状态码。异常状态码:state == 129:表现状态:蓝牙4.0连接并读写数据不成功原因:未知state == 133:表现状态:蓝牙4.0连接并读写数据不成功原因:当蓝牙设备出现频繁连接断

2015-12-07 16:51:33 2811

原创 AlertDialog点击按钮确定或取消不消失

在Android开发中,AlertDialog的使用十分频繁的,有时候会碰到点击确定或取消后AlertDialog仍不消失的需求,但在Android的SDK中并没有给出接口来实现这一功能,故我们通过研究Android AlertDialog的源代码来通过反射进行修改来完成这一需求。查看/core/java/android/app/Dialog.java的源代码: void d

2015-05-25 09:54:48 3420 1

原创 关于SurfaceView移动黑屏的解决办法

解决SurfaceView移动黑屏的情况,只要将Surfaceview的背景设置为透明即可,代码如下://设置画面背景透明mSurfaceview.setZOrderOnTop(true);mSurfaceview.getHolder().setFormat(PixelFormat.TRANSLUCENT);Android开发中碰到的疑问,看到网上的办法五花八门,故将成功解决的方法贴

2015-05-16 12:47:21 867

原创 递归的用法

递归就是使用函数自身,如:#include using namespace std;int diaoyongwo(int n){ int result; if(n==1) return 1; result=diaoyongwo(n-1)*n; return result; }int main(){ cout return 0;}

2014-05-23 19:52:53 401

转载 数据库关系模式规范化

在教学中,大多实例都是主键由一列构成,所以也可以简单地说主属性与主键没有什么区别。第三范式的定义:如果关系模式R中的所有非主属性对任何候选关键字都不存在传递依赖,则称关系R是属于第三范式的。记作R 3NF。如:学生关系模式S1(学号,姓名,系号,系名,系地址)(学号)为关键字,因是单属性关键字,不存在部份依赖问题,应属于第二范式。但因为:学号—>系号,系号—\>学号,系号—>系地址

2014-05-18 19:39:58 3361 1

空空如也

空空如也

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

TA关注的人

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