android
文章平均质量分 71
单刷女boss
字节内推 https://jobs.bytedance.com/referral/mobile/position?token=MzsxNjI2NjczMzc5MjQzOzY5NTUyOTc4NjQ2MDQwOTE5MzQ7MA
展开
-
科大讯飞语音识别集成(单例模式与接口的多态)
虽然官网的代码copy下来没毛病,但是总是看着不爽,而且好多地方要使用,哈哈,请看代码 XFHelper初始化,sdk会通过appid初始化so库,初始化讯飞的服务,讲话时候,用MyApplication中的集合,将识别的字符存起来,当时别完成,会回调结果给实现XFHelper的类。public class MyApplication extends Application { priva原创 2017-10-14 20:43:54 · 1923 阅读 · 0 评论 -
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 · 343 阅读 · 0 评论 -
源码分析-Zygote进程启动到Launcher
上两篇聊了Launcher之后的流程,现在咱们再看一下之前的流程 — 也就是Zygote进程启动之后: Zygote, 意为“受精卵”,安卓进程孵化器 上图可以看出,由linux kernel 的 init (一生万物)进程可以启动Zygote进程,Zygote又启动dalvik,初始化java环境,app需要的资源,系统服务… fork(孵化)桌面Launcher以及各个app进程原创 2018-01-30 14:00:11 · 265 阅读 · 0 评论 -
源码分析-Activity的启动流程
我们知道android系统在启动过程中会执行这样的逻辑: Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程 应用程序是由Launcher启动起来的,而Launcher本身也是一个应用程序,其它的应用程序安装后,就会Launcher的界面上出现一个相应的图标,点击这个图标时,Launcher就会对应的应用程序启动起来。 (Zygote和Launche原创 2018-01-30 14:01:10 · 335 阅读 · 0 评论 -
源码分析-从ActivityThread到View绘制流程
哈哈,一起学习:)这里会从ActivityThread开始分析,也有必要过一下,最后会整个流程会走一遍,主线一定要走~~开始: core/java/android/app/ActivityThread.java1: ActivityThread.java这个java文件并没有构造方法,有的是public static void main(String[] ar原创 2018-01-30 14:01:51 · 324 阅读 · 0 评论 -
安卓分享功能(造轮子)
介绍:项目地址:https://github.com/woaigmz/modularization/tree/master/sdk-share 组件化项目的sharelib,欢迎大家fork star 甚至 follow 感谢:)造个轮子吧,用自己的心里踏实:项目集成微信、QQ、微博。很烦,并不想用三方的一键分享。不如自己写个 sdk 吧,以后逻辑都要自己控制 :)代码设...原创 2018-08-29 15:27:37 · 862 阅读 · 0 评论 -
组件化解耦 框架--SCM
SCM - 组件化通信工具一切皆组件,当每个组件可看成一个微服务,组件化项目才会真正解耦组件化介绍:通过一个类比的例子来介绍组件化 随着业务的复杂度增大,业务线纵横交错,往往牵一发而动全身。 我们希望业务代码也能像一部智能手机。 入口模块:应用桌面图标,更像是home模块,只提供入口; 业务模块:通过appstore,下载我们需要的app,每个app(模块)职责分明,闹...原创 2018-08-29 16:41:05 · 680 阅读 · 0 评论 -
Avatar:安卓跨进程事件订阅发布
Avatar:安卓跨进程事件订阅发布阿凡达:一个解决跨进程的事件订阅发布问题:项目地址Avatar1:跨进程通信 aidl+service2:发布的内容和订阅者的信息进程共享跨进程的通信可用采用binder机制,这里用 aild.stub 的 binder 代理对象订阅发布可用采用CS架构,将订阅信息和发布内容同步到一个Service,保证进程间数据一致选择service+adil...原创 2018-10-12 13:35:44 · 336 阅读 · 0 评论 -
AndroidApplication 优化解耦
通常,我们要在 Application 中处理一堆的三方 SDK 和自定义框架的初始化,下面的处理方式会带来一些问题:维护成本,应用启动慢、卡顿,实现方式 low 。 @Override public void onCreate() { super.onCreate(); mContext = getApplicationContext(); ...原创 2018-10-12 13:37:43 · 551 阅读 · 0 评论 -
RxImagePicker 图片选择器
RxImagePicker 图片选择器优点:① rxjava2 实现读取相册和调用系统相机拍照,File - Uri - path 转换和线程切换② 根据你设置的主题ui 图片选择界面和图片预览界面自适应③ 配置简单,结果回调方便(不用写onActivityResult)兼容7.0 fileprovider不用自己配置④ 加载图片的框架自由选择,Glide Pisco Freso 都可以...原创 2018-10-26 17:22:57 · 816 阅读 · 0 评论 -
Flutter 开发 mvp 和 网络框架 使用及简单封装
github地址背景:flutter 跨平台开发吸引人,想试试web -> service -> daoview -> presenter -> modelmvp 此类设计可以把工程易变的和不容易变的分离,是为解耦。关于为什么要解耦,如何解耦,什么是解耦 … 我们暂且不聊~既然要开发 flutter 工程,我们必然要做一些基础工作。比如 mvp,网络请求,工具类...原创 2019-04-26 21:45:42 · 776 阅读 · 3 评论 -
安卓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 · 578 阅读 · 0 评论 -
安卓仿京东分类页面(1-3级)
效果图: 先谈实现,再考虑优化,go –> 思路:左边一个listview,右边是一个填充页面的容器,之前考虑用fragment的replace方式管理fragment的添加,后来采用了viewpager管理fragment,使用fragmentpageradapter适配器,因为一级分类会过多造成内存溢出。右侧直接一个recyclerview来承载二级三级分类,使用section可以构造二原创 2017-08-25 14:26:34 · 8345 阅读 · 8 评论 -
MVVM那些事儿(一)
要交待清楚mvvm(Model-View-ViewModel)框架,就有必要交待一下mvvm的由来,今生,以及来世。那好,首先感谢大家,我们慢慢来 - - >我想MVC – > MVP – > MVVM 应该有一个衍变过程MVC:这里就以Android为例 : View: XML布局文件,自定义View Model:实体模型(数据的获取、存储、数据状态变化) Controller:对应的Act原创 2017-01-24 12:21:43 · 240 阅读 · 0 评论 -
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 · 255 阅读 · 0 评论 -
安卓购物车添加商品动画效果
自定义动画类(直接使用)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 · 645 阅读 · 0 评论 -
安卓自定义刻度盘控件
思路参考网上大神的,该博客用于一起学习,谢谢^ ^刻度盘gif效果图: 思路:1 自定义view的步骤,根据需求extends View 重写onMeasure onLayout onDraw 测量 排版 绘制 根据需求,没有继承ViewGroup onLayout不必重写2 onMeasure利用宽高约束获得xml中设置宽高,取最小为绘制圆弧的直径,确定圆弧所在的矩形区域,原创 2017-05-27 16:37:18 · 1828 阅读 · 2 评论 -
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 · 282 阅读 · 0 评论 -
快速搞定极光推送
消息:据说安卓是时候需要工信部统一下推送通道了^ ^ ~D哈哈,我们还是看极光推送吧~ 可以给你女友搞个天天sao扰她,额~~(害羞)先上效果图: 第一步:创建极光账号,创建应用 应用名(清单文件里的: android:label=”@string/app_name”)之后会生成应用信息,之后会用: 完成后进到推送设置页面–> 包名(清单文件里的: package=”com.gmz.原创 2017-06-08 10:59:47 · 619 阅读 · 0 评论 -
清晰的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 · 1606 阅读 · 2 评论 -
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 · 2147 阅读 · 2 评论 -
炫酷的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 · 353 阅读 · 0 评论 -
工具类--让底部控件view随软键盘移动而移动
效果图: 工具方法: 可放在BaseActivity中 //收起键盘 protected void retractKeyboard() { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null原创 2017-06-27 14:04:57 · 632 阅读 · 0 评论 -
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 · 3705 阅读 · 1 评论 -
Android客户端5分钟集成支付宝支付
蚂蚁金服开放平台: https://open.alipay.com/platform/home.htm alipay在2.0后更注重安全性,我们客户端需要保存的东西没有了 很轻松就可以实现支付功能。这里我们应该知道,服务端已经集成了alipay,公司自己的服务器会给我们提供一个接口,我们只需要从这个接口里拿到orderInfo,这个String是什么呢,我们看官方文档 省去了我们之前客户端需原创 2017-07-25 16:38:15 · 337 阅读 · 0 评论 -
安卓客户端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 · 431 阅读 · 0 评论 -
Android 页面跳转 PageRouter
项目 demo 地址 用apt 实现欢迎 star issues注解 @Route @Args不用关心所跳转页面所需参数,BundleBuilder 会根据 @Args 获取变量名并自动生成 set 方法,输入 Test1ActivityBundle.Builder(). 后会提示出页面参数,省了撸代码找参数的时间调用PageRouter .of(this) ...原创 2019-08-05 13:56:44 · 321 阅读 · 0 评论