自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

z2wenfa的博客

Code More,Think More,Communicate More.

  • 博客(59)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 RxAndroid 进行封装实现替代Handler的方案

概述.在android中如果我们开启了一个新的线程,但是执行完毕之后需要更新UI我们一般使用Handler来操作,这样就出现了2个问题:1.只要需要在ui线程中执行ui更新 我们就需要在Activity中创建一个Handler对象,同时我们还需要创建Message来发送,同时还需要在Handler中进行判断,这样代码的可阅读性就降低很多了,而且代码编写起来也很烦。2.需要异步执行任务时如果

2016-04-28 18:50:06 6162 4

原创 对这两年工作经历的一个复盘

最近经历了很多的事情,从工作到生活

2021-04-01 23:33:58 387 2

原创 从事工作的要求、大学所学专业知识与在校期间如何提升自身专业能力的一些思考

从事工作的要求、大学所学专业知识与在校期间如何提升自身专业能力的一些思考工作的选择从事工作前首先需要明确的是自己以后想做哪方面的工作,最好的情况,我建议从事一份自己喜欢的感兴趣的工作比较好,在真正工作后,刚开始每天都能够接触到新鲜事物,每天都在面临挑战,但是随着工作时间增长,本职工作基本上能够处理的游刃有余后,很多的时间可能更多就是在做一些提高技能熟练度的事情,换一种说法就是在重复着已经掌握的技能,这个阶段会很比较煎熬,很容易让自己进入疲惫期,甚至于担心自己是否有在成长,开始对工作失去热情,变得得过且过

2020-11-23 18:54:26 2246 1

原创 Cordova加载远程URL的相关配置

前言最近在使用Cordova开发应用,我的主要工作是提供一个Android的壳,并提供一些原生方法的插件让前端可以调用,正常情况下,每次发包,我们都需要将前端的文件放入assets文件夹下的www目录下,但是这样会带来一个问题,那就是如果前端有改动的化,Android端需要频繁的进行发包,这样就很麻烦了,上线后如果前端有Bug也不能实时的更新应用,于是我们就考虑直接去访问前端的URL路径不就行了。直接使用前端部署后的URL后出现的问题解决1. 直接访问远程URL于是我们MainActivity的on

2020-06-27 12:23:25 1768 2

原创 Cordova如何让继承的Activity正确全屏的方法

使用android常规的全屏操作都不能正常让Activity全屏,着实让人纳闷,最后看了看CordovaActivity源码,发现onCreate()方法中其实预留了设置全屏的代码: if (!preferences.getBoolean("ShowTitle", false)) { getWindow().requestFeature(Window.FEATURE_NO_TITLE); } if (preferences.getBo

2020-05-30 11:39:20 351

原创 2019年度总结(各种吐槽发牢骚)

突然想起来的年终总结过年期间的这几天,全国各地都笼罩在武汉新型流感的疫情中,让本来就不太浓郁的年味变得更淡了…大家都是被提倡要求宅在家里面,只能不停的看各种电视剧,真的很无聊,上班时间估计也是要延后了,想着休息这么多天,时间得利用起来啊,再想着去年过年好像都记不得干了啥了,想想不行,于是便决定先写篇年终总结回顾下吧。时间过的真的太快了转眼之间又过去一年,真的好快,和亲戚们吃饭聊着以前的事情,...

2020-01-29 22:59:19 542 1

原创 Android自定义View总结-绘制篇

图形绘制四个阶段一. Canvas常用图形绘制方法和Paint基本API二. Paint详解颜色效果drawText()相关初始化三. Canvas对绘制的辅助–范围裁切和几何变换四. 图形绘制顺序的控制一、 绘制基础Canvas图形绘制API:drawColor:绘制背景drawLine:绘制直线drawPoint:绘制点drawPath绘制路...

2019-08-09 21:57:16 500

原创 Android自定义View总结-动画篇

自定义View知识结构图形绘制布局触摸反馈动画属性动画执行过程ValueAnimator设置数值变化区间根据Interpolator获得动画执行进度根据Evaluator获取对应进度的数值通过AnimatorUpdateListener手动获取返回的数值对动画执行对象的属性进行赋值ObjectAnimator视图动画通用属性durationfi...

2019-08-08 10:03:10 177

原创 Activity启动流程分析(Android 9.0)

本文的重点是总结Activity启动过程中的几个关键点与相关逻辑所在的源码位置,具体的启动流程调用链真的很长,所以我还是按照我之前的方式来做,带着问题去找相关的代码逻辑。Activity的启动流程应用通过startActivity或是startActivityForResult方法向ActivityManagerService发出启动请求。ActivityManagerService...

2019-07-10 02:22:45 524

原创 Git常见使用场景对应的命令行操作

前言在项目开发我们不可避免的需要接触到版本管理,目前基本上市面上最常用的基本就是Git了,虽然svn还是有很多老项目在使用,但是当我们熟悉Git会发现常见的场景SSH方式clone代码Clone代码到本地切换到其他分支以当前分之创建一个新的分支删除一个分支添加新的文件进行代码管理提交代码更新最新的代码撤回修改合并代码合并其他分之的代码到当前分支重新编辑提交信息合并其...

2019-06-20 01:18:20 185

原创 Android优化相关总结

内存优化内存优化的几种方法:需要使用多少内存申请多少内存。比如实例化数组大小。创建Map时如果Key值支存在Int类型的话可以尝试使用SparseArray。加载图片的时候,在不需要特别高画质的情况下可以采用压缩或者使用占用内存较小的图片格式,如默认的图片格式是ARGB_8888可以换成RGB_565。对象不再使用之后及时进行回收与关闭。比如Bitmap,一般Bitmap占...

2018-10-01 13:07:20 215

原创 Android事件分发机制与嵌套导致触摸事件冲突的解决方案

实现滑动的常用方法通过scrollTo()、scrollBy()来进行滑动使用Scroller来进行滑动 @Override public boolean onTouchEvent(MotionEvent event) { case ACTION_UP: scroller.startScroll(getScrollX(...

2018-09-24 14:59:46 1032

原创 跨进程通信(IPC)

跨进程通信(IPC)-Inter-Process CommunicationAndroid多进程的使用场景例如:车联网这类牵涉到系统定制的话,对于多进程的使用应该还是很多的,说的比较简单的例子,一个应用商店App,就需要通过IPC通知Launcher下载的apk处于什么样的状态,Launcher能够实时的更新下载安装的Apk的图标状态。应用使用Service播放需要通知前台Activit...

2018-09-19 21:39:17 1925

原创 Activity的生命周期与启动模式

Activity可以说是我们平常使用最多的组件了,虽然使用起来似乎很简单,但是如果深入了解的话,其实还是有很多需要我们注意的地方的。Activity生命周期正常情况下的生命周期Fragment的生命周期Activity和Fragment的生命周期之间的关联看完上面的图,我们大致对生命周期有了一个认识,可以看到生命周期基本都是两两对应的。onCreate()与onDestory...

2018-09-18 16:28:33 321

原创 Rxjava2源码浅析(一)

前言一直对Rxjava的实现很好奇,这次刚好有时间就看下它的源码,并把其中的思路记录下来,加深印象。先是看了其它人的分析后自己又去看了源码,说实话源码还是蛮绕的,可能自己还是对观察者模式理解的不够深刻吧…这次主要了解三点: 1. 知道源头(Observable)是如何将数据发送出去的。 2. 知道终点(Observer)是如何接收到数据的。 3. 何时将源头和终点关联起来的。

2018-02-02 15:30:56 220

原创 FrameLayout的onMearsure()与onLayout()源码浅析

前言之前一直对View绘制过程只知道个大概,最近看了扔物线的视频,突然来了兴趣,于是找了一个比较简单的ViewGroup来分析下源码,巩固下理解。onMeasure @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int count = g

2018-01-24 16:18:23 573

原创 利用多进程应对集成第三方模块时App的闪退

当我们做一个平台类型的应用时,我们在开发平台需要的功能模块的同时,可能还需要提供集成其它第三的应用的能力,这些方式我们可以采用模块化或者插件化的方式,目前已经出现了不少的开发方案,这些不是我们今天的主题,有兴趣的可能百度看看。 当我们集成了第三方的功能模块时,这时就可能遇到一个问题-第三方的功能模块可能出现了异常导致平台App也跟着奔溃了,这是给用户的体验非常的不好,后台收集的Bug信息立刻就推

2018-01-17 16:23:21 402

原创 2017总结与2018展望

说说博客为什么很久没更新(给自己的懒惰找几个理由)  已经好几个月没有写博客,主要是因为希望自己的博客质量能够提升,自己的博客很多是对一些技术的总结与经验,不过很多其实网上可能已经有类似的博客了,甚至总结非常全面详细,所以以后这类的我可能更多的是记录在自己的有道云笔记里面,只有那些自己觉得很特别而没有多少人知道、或突然出现的灵感、或者想要强力推荐的东西才写上博客,不想再拾人牙慧了。再加上这一年做的项

2018-01-01 16:00:43 1452 1

原创 MarkDonw常用语法

MarkDonw常用语法1.斜体与粗体Strong: Strong例子 Emphasize: 斜体例子2.分级标题#一级标题 ##二级标题3.超链接[]() []中显示链接的文本 ()中输入链接的地址 测试超链接4.锚点使用{#index}设置锚点 使用[顶部](#index)进行跳转 顶部5.列表1. 无序列表 2. 有序列表 - 无序列表1 - 无序列表2 效果:

2017-09-11 17:24:02 307

原创 使用zbar库对预览界面进行裁剪解码时遇到的坑

前言:  最近在做扫码的功能,使用了很多的库,从最开始的Zxing到Zbar,再到各种基于这两个库的开源扫码库,非常的折腾,其中经历了各种各样的坑,真是一把辛酸泪...有些虽然封装的很好,很成熟,但是性能上又不能够满足我的要求(解析速度不够),最后经历层层波折找到一个ZBAR的封装库,性能很不错(当时我就感觉找到了救星),但是demo是只能扫一个码,出现多个条码时因为没有裁剪解析区域所以总是会

2017-06-19 13:34:01 945

原创 一次使用Android Studio的Git工具解决疑难杂症的经历

最近遇到了一个特别奇怪的问题,

2017-05-04 22:32:33 1027

原创 一个带下拉列表的EditText--SpinnerEditText

工作中我们常会有时候会有一个需求,下拉框中由于选项实在太多,于是就希望能够添加模糊匹配的功能,于是我便封装了一个可以模糊匹配的下拉编辑框。先看下效果吧:简单说下实现哪些功能吧:1.不需要使用下拉选择时,可以完全当作EditText进行使用。右侧封装了一个图标,可以自己替换想要的图标,并且重写图标的点击事件(默认是弹出下拉列表)。2.当下拉列表的数据不为空时可以根据编辑框输入的文本过

2017-04-03 09:35:52 7384 14

原创 Gradle中的配置与多版本开发

一.BuildConfig全局变量的定义二.manifest中变量的动态配置三.buildtype和productflavors的设置四.打包时签名的设置五.打包时apk名称的自定义六.gradle中的def 定义变量的使用七.通过productflavors进行多版本开发

2017-03-05 23:18:04 2188

原创 2016总结与2017的展望

蛮长时间没有写博客了,今天就写篇博客吧(虽然还是划水),因为之前实在是太忙了,年前稍微闲了点,但是发现自己变的实在是太懒了,下班回去基本都是在看电视剧....现回忆下自己2016对自己比较重要的几件事情吧:1.去了趟九寨沟:感觉不错,夏天去的,每天温度都是二十几度简直不要太爽。2.换了一家公司:现在这家公司后台是.net3.买了一台macbook pro:终于还是狠下心买了(心疼.

2017-01-28 21:42:23 932

原创 fastjson序列化(对象转字符串)时字段的大小写问题与我自己的使用方案

因为现在公司的后台是.net,而他们的命名方式并不是Java的JavaBean,。这时如果还是按照以前的方式实体的创建使用JavaBean的方式,在序列化的时候就会出现很多不必要的麻烦-———当我们需要传递序列化的参数给后台时就会发现变量名首字母全部都成了小写。  先说一说我刚开始的解决方式吧,因为我之前就知道使用 @JSONField 注解可以改变变量名称,于是我便使用这个注解将参数序列化时

2016-11-27 22:12:58 9119 3

原创 代码Review与文档的重要性

今天双十一,不想写代码了,就来写写博客吧!双十一什么也没买,不是不想买而是过两天要出两个星期的差怕买的东西没人取....呵呵,单身狗的悲哀。最近搞得心情挺不好的,工作上配合出现了一些问题。也因此有了这篇文章。  代码Review的重要性:  最近在开发速度上出现了问题(个人认为自己开发的并不慢,事实也确实如此),可能跟年龄的增长的原因有关吧,考虑事情想的越来越多,一个功能的开发总是想把

2016-11-11 16:17:28 1188

原创 另一种思路下的低耦合易封装权限请求库-PermissionRequester

先说下这个权限请求库能够做到的事情: 1.能够直接在请求结果回调里得到哪些权限被授予,哪些权限被拒绝,本次请求的权限是否全部被授予。 2.能够容易的在基类里进行封装,对拒绝方法进行统一的处理。3.耦合比较小,适合从低版本sdk升级到6.0的朋友。

2016-11-06 10:02:45 865

原创 发布库到jcenter中所遇的坑与解决方法

原本以为上传一个库到jcenter应该不难,但是没想到遇到了这么多坑,把很多事情都给耽误了.坑一:bintray注册的问题.我是直接使用github登陆的结果我github的primary email是我的163邮箱,bintray注册邮箱总是不过,只能去注册一个gmail邮箱了,但是我大天朝的国情大家都是知道的,只能翻墙,开始真的不想使用vpn于是先修改host,申请了一个gmail

2016-10-31 11:14:46 3505 2

原创 灵活利用泛型的MVP模式T-MVP(附带一个快速创建MVP接口的Android Studio插件-TMVPHelper)

接触到MVP模式已经挺长时间了,好几个月T-MVP我就了解到了,觉得挺有想法的,于是直接就用到了这次项目里,用起来感觉还行,就花时间推荐一下吧。大家都知道MVP模式都有的几个接口Model,View,Presenter,另外还有一个用于用于存放这几个接口Contract契约类。先看项目的机构吧

2016-10-21 10:29:41 9743 1

原创 数据库系统及原理目录

第一章 数据库系统基本概念:了解和掌握数据管理技术的发展阶段,数据描述的术语,数据抽象的四个级别,数据库管理系统的功能,数据库系统的组成第二章 数据库设计和ER模型:1.ER模型设计2.ER模型向关系模型转换第三章 关系模式设计理论:1.函数依赖2.范式第四章 关系运算:理解关系模型的运算理论,了解关系演算和查询优化,熟练掌握关系代数运算,掌握关系代数表达式的构

2016-10-19 16:16:46 905

原创 使用Bmob遇到的坑与解决办法

先说下为什么使用Bmob:准备开发一个自己使用的小工具,直接在别人的开源代码进行的开发,这个项目只有本地数据的存储,我想加个网络存储的功能,因为之前听朋友说过Bmob,于是便选择使用它了。坑一:依赖包出现了冲突于是我便按照官网的文档使用Android Studio一步步添加依赖,所有都弄好了,一编译发现Bmob依赖的库与之前添加的Rxbinding依赖的Rxjava库出现了冲突

2016-10-12 10:44:07 13445 1

原创 二.C++学习笔记-模板

学过Java的看到C++的模板应该会觉得跟泛型的使用的方式非常相似,所以理解起来还是比较容易的,只不过语法有些许不同,需要花些时间去熟悉。一.函数模板#include "stdafx.h"#include #include using namespace std;templatevoid max(T a,T b) { cout b ? a : b) << endl;}

2016-10-09 17:22:32 568

原创 一.C++学习笔记-友元

我对友元的理解很简单:就是在类的内部申明一些"朋友",一般这些"朋友"都有一个参数类型是这个类的类型,这时候这些"朋友"边能够直接使用这个类的私有属性和函数了。#include "stdafx.h"#include#includeusing namespace std;class FriendDemo { friend class B; friend void say(Frien

2016-10-09 16:21:33 344

原创 Android Studio快捷键

1.代码提示 ctrl+alt+space2.自动修复 alt+enter   3.查看下一个 ctrl+L 查看上一个 ctrl+shift+L (必须先打开查询ctrl+f)4.查看文档解释 ctrl+q5.返回之前操作的 ctrl+alt+←  相反ctrl+alt+→(mac不知道为什么不行)6.快速生成Get Set方法() C

2016-09-29 19:34:38 570

原创 Visual Studio快捷键

有段时间没用VS了好多都忘了,这次记录下来,免得下次又要重新去找。自己常用的一些快捷键:1. ctrl+F:运行程序,不会自动退出命令行。2. ctrl+j: 代码智能提示。3. ctrl+k,ctrl+f :代码格式化.4. ctrl+- :回到上一个光标点 。ctrl+shift+-: 前进到下一个光标点。5. ctrl+L: 删除当前行。6. Ctrl+K,C

2016-09-29 15:05:52 733

原创 Activity与Fragment通用的跳转工具类JumpUtil的实现

工具类由来:每次跳转到其他的Activity我们都要实例化一个Intent,有时为了传递数据还要实例化一个Bundle,这些代码说多不多但是说少也不少,于是我便想着如果能够将跳转的功能封装一下,是不是就能够稍微偷点懒呢?封装思路:根据实际开发经验跳转常用的有这两种方式:1.不带任何数据直接跳转到另外一个Activity.2.需要通过Bundle带一些数据到另外一个Activit

2016-09-20 11:56:18 1527

转载 Android中Camera开发各种奇奇怪怪问题的解决

http://www.jianshu.com/p/f269bcda335f

2016-08-03 23:35:32 827

原创 C#学习总结

学习了一下c# 感觉和java很相似 如果不使用C#独有的一些关键字 感觉直接可以按照java来写,上手很快,最近开始学习Unity3D(*^__^*) 嘻嘻…… 简单总结下本次C#的学习。1.out关键字:java中一个方法只能够返回一个对象 C#中提供了out关键字来返回多个变量,本质就是直接将对象的引用传入进行操作 而不是使用形参再另外开内存空间。要注意的是out关键字即使被初始化过了传

2016-04-10 22:51:46 419

原创 真机调试时使用自己的key运行程序

1.做百度地图的时候必须得key和包名对应才能有用 但是

2016-03-24 11:11:01 358

原创 Jsoup的使用

Jsoup是爬取网页html数据的一个框架 使用起来也是很简单的 基本上稍微懂点html使用起来就不会有什么问题了使用步骤:1.获得html的Document对象 这里只需要注意需要将timeout设置的稍微长点 因为Jsoup默认超时时间很短不设置下经常出现超时异常/** * 获得Document对象 * @param host * @param url * @ret

2016-02-29 00:33:08 517

T-MVPHelper

用于T-MVP模式自动生成接口代码,解决手动实现Presenter的重复工作,节省大家的时间。 根据MVPHelper这个插件修改而成,有兴趣的话大家也可以自动fork进行定制。

2016-10-21

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

TA关注的人

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