自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RxImagePicker 图片选择器

RxImagePicker 图片选择器优点:① rxjava2 实现读取相册和调用系统相机拍照,File - Uri - path 转换和线程切换② 根据你设置的主题ui 图片选择界面和图片预览界面自适应③ 配置简单,结果回调方便(不用写onActivityResult)兼容7.0 fileprovider不用自己配置④ 加载图片的框架自由选择,Glide Pisco Freso 都可以...

2018-10-26 17:22:57 783

原创 AndroidApplication 优化解耦

通常,我们要在 Application 中处理一堆的三方 SDK 和自定义框架的初始化,下面的处理方式会带来一些问题:维护成本,应用启动慢、卡顿,实现方式 low 。 @Override public void onCreate() { super.onCreate(); mContext = getApplicationContext(); ...

2018-10-12 13:37:43 491

原创 Avatar:安卓跨进程事件订阅发布

Avatar:安卓跨进程事件订阅发布阿凡达:一个解决跨进程的事件订阅发布问题:项目地址Avatar1:跨进程通信 aidl+service2:发布的内容和订阅者的信息进程共享跨进程的通信可用采用binder机制,这里用 aild.stub 的 binder 代理对象订阅发布可用采用CS架构,将订阅信息和发布内容同步到一个Service,保证进程间数据一致选择service+adil...

2018-10-12 13:35:44 297

原创 组件化解耦 框架--SCM

SCM - 组件化通信工具一切皆组件,当每个组件可看成一个微服务,组件化项目才会真正解耦组件化介绍:通过一个类比的例子来介绍组件化 随着业务的复杂度增大,业务线纵横交错,往往牵一发而动全身。 我们希望业务代码也能像一部智能手机。 入口模块:应用桌面图标,更像是home模块,只提供入口; 业务模块:通过appstore,下载我们需要的app,每个app(模块)职责分明,闹...

2018-08-29 16:41:05 664

原创 安卓分享功能(造轮子)

介绍:项目地址:https://github.com/woaigmz/modularization/tree/master/sdk-share 组件化项目的sharelib,欢迎大家fork star 甚至 follow 感谢:)造个轮子吧,用自己的心里踏实:项目集成微信、QQ、微博。很烦,并不想用三方的一键分享。不如自己写个 sdk 吧,以后逻辑都要自己控制 :)代码设...

2018-08-29 15:27:37 773

原创 源码分析-从ActivityThread到View绘制流程

哈哈,一起学习:)这里会从ActivityThread开始分析,也有必要过一下,最后会整个流程会走一遍,主线一定要走~~开始: core/java/android/app/ActivityThread.java1: ActivityThread.java这个java文件并没有构造方法,有的是public static void main(String[] ar

2018-01-30 14:01:51 290

原创 源码分析-Activity的启动流程

我们知道android系统在启动过程中会执行这样的逻辑: Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程 应用程序是由Launcher启动起来的,而Launcher本身也是一个应用程序,其它的应用程序安装后,就会Launcher的界面上出现一个相应的图标,点击这个图标时,Launcher就会对应的应用程序启动起来。 (Zygote和Launche

2018-01-30 14:01:10 300

原创 源码分析-Zygote进程启动到Launcher

上两篇聊了Launcher之后的流程,现在咱们再看一下之前的流程 — 也就是Zygote进程启动之后: Zygote, 意为“受精卵”,安卓进程孵化器 上图可以看出,由linux kernel 的 init (一生万物)进程可以启动Zygote进程,Zygote又启动dalvik,初始化java环境,app需要的资源,系统服务… fork(孵化)桌面Launcher以及各个app进程

2018-01-30 14:00:11 249

原创 Andorid解决登陆时edittext软键盘遮挡问题

KeyboardLayout监听输入法是否弹出(大于屏幕高度的五分之一) 效果图: package com.jiongbook.evaluation.utils;import android.app.Activity;import android.content.Context;import android.graphics.Rect;import android.util.Attribu

2017-10-15 09:35:12 304

原创 科大讯飞语音识别集成(单例模式与接口的多态)

虽然官网的代码copy下来没毛病,但是总是看着不爽,而且好多地方要使用,哈哈,请看代码 XFHelper初始化,sdk会通过appid初始化so库,初始化讯飞的服务,讲话时候,用MyApplication中的集合,将识别的字符存起来,当时别完成,会回调结果给实现XFHelper的类。public class MyApplication extends Application { priva

2017-10-14 20:43:54 1900

原创 安卓Java转kotlin

项目project的build.gradle classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.4-2"Module的build.gradleapply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'如图:然后下载插件。。。 等处于停止编译状态 c

2017-09-01 17:41:20 487

原创 安卓仿京东分类页面(1-3级)

效果图: 先谈实现,再考虑优化,go –> 思路:左边一个listview,右边是一个填充页面的容器,之前考虑用fragment的replace方式管理fragment的添加,后来采用了viewpager管理fragment,使用fragmentpageradapter适配器,因为一级分类会过多造成内存溢出。右侧直接一个recyclerview来承载二级三级分类,使用section可以构造二

2017-08-25 14:26:34 8282 8

原创 安卓客户端5分钟集成微信支付

studio1:导包 //wechat compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.0.2'2:微信的回调是在WXPayEntryActivity中完成的 注意必须放在包名.wxapi目录下 WXPayEntryActivity.class/** * 作者:haoran on https://gith

2017-07-28 19:18:56 399

原创 Android客户端5分钟集成支付宝支付

蚂蚁金服开放平台: https://open.alipay.com/platform/home.htm alipay在2.0后更注重安全性,我们客户端需要保存的东西没有了 很轻松就可以实现支付功能。这里我们应该知道,服务端已经集成了alipay,公司自己的服务器会给我们提供一个接口,我们只需要从这个接口里拿到orderInfo,这个String是什么呢,我们看官方文档 省去了我们之前客户端需

2017-07-25 16:38:15 306

原创 炫酷的glsurfaceview

一切尽在效果图~实现一些好玩的,相机、直播,都可以 。。 相机的surfacepackage com.gmz.mycanera;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.hardware.Camera;

2017-07-14 15:55:59 314

原创 react-native + androidstudio 混合开发 - 1(基础配置)

谢谢。最近好热,大家夏天快乐~早日成为技术大牛 希望一起学习,互相进步 ^ ^ 老规矩,先上图 注意版本匹配问题package.json"dependencies": { "install": "^0.10.1", "react": "^16.0.0-alpha.12", "react-native": "^0.46.1" }之前一直load不出来好急,最后决定

2017-07-11 13:54:00 2100 2

原创 retrofit中异常com.google.gson.JsonSyntaxException解决方案

很荣幸能遇到问题 当我用retrofit2+rxjava在apiservice中以注解Post请求数据时候 //更新用户昵称 @FormUrlEncoded @POST(Constants.URL_UPDATEPERSON) Observable<PersonNicknameUpdateBean> updatePersonNickname(@Field("personId

2017-06-28 10:38:09 3593 1

原创 工具类--让底部控件view随软键盘移动而移动

效果图: 工具方法: 可放在BaseActivity中 //收起键盘 protected void retractKeyboard() { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null

2017-06-27 14:04:57 606

原创 清晰的MVP-封装 Retrofit2+Rxjava+Lamda+dagger2(可直接使用)

代码已上传到https://github.com/woaigmz/WoDeMeiZi 欢迎大家fork哦,感谢,当然对你有用的话,嘻嘻 感谢大神提供的口 http://gank.io/api/ 先上图:哈哈~福利了哦 原谅我代码没贴全,gitub的注释很全滴!先来Retrofit2+Rxjava+Lamda+dagger2的引入:apply plugin: 'com.android.appl

2017-06-18 14:01:28 1558 2

原创 快速搞定极光推送

消息:据说安卓是时候需要工信部统一下推送通道了^ ^ ~D哈哈,我们还是看极光推送吧~ 可以给你女友搞个天天sao扰她,额~~(害羞)先上效果图: 第一步:创建极光账号,创建应用 应用名(清单文件里的: android:label=”@string/app_name”)之后会生成应用信息,之后会用: 完成后进到推送设置页面–> 包名(清单文件里的: package=”com.gmz.

2017-06-08 10:59:47 600

转载 Android网络编程HttpClient和HttpUrlConnection

1.HttpClient Android SDK中包含了HttpClient,但Android6.0版本直接删除了HttpClient类库 eclipse: 在libs中加入org.apache.http.legacy.jar android studio: 在相应的module下的build.gradle中加入: android { useLibrary 'o

2017-05-31 10:49:48 265

原创 安卓自定义刻度盘控件

思路参考网上大神的,该博客用于一起学习,谢谢^ ^刻度盘gif效果图: 思路:1 自定义view的步骤,根据需求extends View 重写onMeasure onLayout onDraw 测量 排版 绘制 根据需求,没有继承ViewGroup onLayout不必重写2 onMeasure利用宽高约束获得xml中设置宽高,取最小为绘制圆弧的直径,确定圆弧所在的矩形区域,

2017-05-27 16:37:18 1760 2

原创 安卓购物车添加商品动画效果

自定义动画类(直接使用)package com.bjut.sse.yimeiband.main;import android.app.Activity;import android.graphics.drawable.Drawable;import android.view.View;import android.view.ViewGroup;import android.view.anim

2017-05-23 19:10:57 623

原创 Handler消息机制

先举个子线程中使用Handler的例子:package com.haoran.myhandler;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundl

2017-02-04 23:01:17 222

原创 MVVM那些事儿(一)

要交待清楚mvvm(Model-View-ViewModel)框架,就有必要交待一下mvvm的由来,今生,以及来世。那好,首先感谢大家,我们慢慢来 - - >我想MVC – > MVP – > MVVM 应该有一个衍变过程MVC:这里就以Android为例 : View: XML布局文件,自定义View Model:实体模型(数据的获取、存储、数据状态变化) Controller:对应的Act

2017-01-24 12:21:43 219

原创 Android 页面跳转 PageRouter

项目 demo 地址 用apt 实现欢迎 star issues注解 @Route @Args不用关心所跳转页面所需参数,BundleBuilder 会根据 @Args 获取变量名并自动生成 set 方法,输入 Test1ActivityBundle.Builder(). 后会提示出页面参数,省了撸代码找参数的时间调用PageRouter .of(this) ...

2019-08-05 13:56:44 276

原创 Flutter 开发 mvp 和 网络框架 使用及简单封装

github地址背景:flutter 跨平台开发吸引人,想试试web -> service -> daoview -> presenter -> modelmvp 此类设计可以把工程易变的和不容易变的分离,是为解耦。关于为什么要解耦,如何解耦,什么是解耦 … 我们暂且不聊~既然要开发 flutter 工程,我们必然要做一些基础工作。比如 mvp,网络请求,工具类...

2019-04-26 21:45:42 663 3

空空如也

空空如也

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

TA关注的人

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