自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (28)
  • 收藏
  • 关注

原创 【android学习】android常用adb命令(持续更新)

android使用adb命令查看设备尺寸和密度adb shellwm size 屏幕大小1920x720wm density 屏幕密度 160wm density 240 修改屏幕密度为 240查看keystore的签名keytool -list -keystore D:\app_key.jks查看apk签名keytool ...

2019-12-04 17:03:26 153

原创 【android学习】使用linkToDeath对AIDL双向死亡监听

概述在使用service中进行AIDL交互时候,如果服务端或者客户端意外停止,会抛出异常android.os.DeadObjectException , 这时候我们就需要双向监听服务端和客户端的异常停止,并重新绑定服务linkToDeath的使用 linkToDeath 为Binder对象添加死亡代理。 unlinkToDeath 取消死亡代理客户端 首先我们需要创建一个DeathRecipient对象 private IBinder.DeathRec...

2021-01-18 16:57:59 5957 5

原创 【android学习】使用windowIsTranslucent导致的问题

为啥使用windowIsTranslucent一般我们使用在冷启动时候,视觉上加快了冷启动速度,一般设置如下: <item name="android:windowBackground">#ff0000</item> //背景颜色 <item name="android:windowIsTranslucent">true</item>//是否半透明<!-- <item name="andro.

2021-01-18 15:08:31 2726

原创 【android学习】监听左右滑动的LinearLayout

public class BCustomerLinearLayout extends LinearLayout implements View.OnTouchListener { private static final String TAG = "CustomerLinearLayout"; public OnGestureChangeListener listener; public interface OnGestureChangeListener { .

2021-01-15 15:17:09 927

原创 【android异常】Glide 在 android 9.0 系统 http图片加载不出来

在android 9.0上面使用glide加载http的图片时候报错java.io.IOException(Cleartext HTTP traffic to img.kaolafm.net not permitted)如下图这是因为在android 9.0以后,不在允许使用http请求修改方法如下:在AndroidManifest.xml的application里面,添加android:usesCleartextTraffic="true"以及添加android:ne.

2020-06-10 14:02:09 2242

原创 【android学习】记录应用内存优化

图片优化(效果最明显) 过度图片的回收 原因分析:在做冷启动时候,很多人写一个如下 <style name="MainTheme" parent="@android:style/Theme.Wallpaper.NoTitleBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowTransluc...

2020-05-22 11:36:40 372

原创 【android学习】查看应用应用内存

查看内存方法在adbshell条件下面使用如下指令查看内存dumpsys meminfo com.incall.autofly.launcher | grep TOTAL:获得的占用内存大小如下:TOTAL: 128582

2020-05-20 10:42:42 1156

原创 【android学习】ViewPager中包含TextView,在TextView上拖动不能滑动ViewPager

问题描述: 利用ViewPager+Fragment左右滑动很灵敏,但是只要手指放在fragment布局中的TextView上面拖动时候,ViewPager就不能拖动,经过后续对比发现,问题点就在TextView中的singleLine和gravity上面。在做跑马灯效果时候,给TextView设置了 android:singleLine="true",以及 android:gravity="center"修改方案:android:singleLine="true"继续保...

2020-05-15 09:19:31 534

原创 【android学习】自定义View空间,只能监听到ACTION_DOWN,不能监听到ACTION_MOVE

我们在处理自定义View时候,会重写dispatchTouchEvent方法,但是在有些时候,只能获得ACTION_DOWN,不能获得ACTION_MOVE @Override public boolean dispatchTouchEvent(MotionEvent ev) { Log.e(TAG, "dispatchTouchEvent: " + ev.to...

2020-05-08 12:00:32 613

原创 【android学习】多用户发送广播

简介在开发中,遇到Calling a method in the system process without a qualified user这样的错误原因:在Android 4.2以后,增加了多用户,需要使用如下发送广播context.sendBroadcastAsUser(intent,UserHandle.ALL);添加权限<uses-permission a...

2020-01-16 16:04:46 2711

原创 android架构师之路——APT和 Javapoet 实现Butterknife

介绍APT(Annotation Processing Tool)即注解处理器,是一种处理注解的工具,确切的说它是javac的一个工具,它用来在编译时扫描和处理注解。注解处理器以Java代码(或者编译过的字节码)作为输入,生成.java文件作为输出。使用APT的优点就是方便、简单,可以少些很多重复的代码。用过ButterKnife、Dagger、EventBus等注解框架的同学就能感受...

2019-12-10 18:26:18 347

原创 android架构师之路——自定义注解

定义注解定义注解用的关键字是:@interface元注解元注解:元注解共有四种@Retention, @Target, @Inherited, @Documented@Retention注解位置@Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含 @Retention(RetentionPolicy...

2019-12-09 17:04:54 129

原创 【android学习】沉浸式状态栏解决方案

stytle方式用stytle方式设置,需要兼容4.4一下,4.4到5.0,以及5.0以上版本/values/stytle.xml <!-- 状态栏透明设置 必须是4.4以上的版本--> <item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true&...

2019-11-26 16:04:32 318

原创 【android学习】Android系统根目录结构及说明

/system目录/system/app/ 存放系统应用,包括google预先绑定得app,厂商或运营商得app(这些app应该放在/vendor/app目录)/system/bin主要是Linux系统自带的二进制可执行文件/system/build.prop记录了系统的设置和改变/system/etc存放安卓系统配置文件/system/fonts 存放各种字体/s...

2019-11-19 17:16:28 2073

原创 【android UI学习】简单炫酷Splash界面

先看运行效果第一个动画:绘制六个点旋转动画绘制六个小圆mCircleColors这里一共是6中颜色,分别对应6个小圆颜色 每个圆得角度=2π/小圆的个数 每个圆得x坐标 = 圆半径*cos(a) +圆心X坐标 每个圆得y坐标 = 圆半径*sin(a) +圆心Y坐标 每个小圆i*间隔角度 + 旋转的角度 = 当前小圆的真是角度六个点得绘制代码 /** ...

2019-11-14 18:01:20 801

原创 【android UI学习】QQ未读消息粘性动画

方法简介先看一下效果,这里是模仿qq未读消息,清空消息动画效果,主要也是前面讲解了贝塞尔曲线的运用实战下面我们来计算一下其中各个点的坐标位置AB,CD这两条线是通过贝塞尔曲线绘制得出的,绘制AB线,我们需要得到A,B,Anchor三个点的坐标 绘制CD线,我们需要得到C,D,Anchor三个点的坐标得到AB,CD两条线以后,我们就可以通过path方式,画出...

2019-11-01 17:49:40 254

原创 【android UI学习】贝塞尔曲线

简介Bézier curve(贝塞尔曲线)是应用于二维图形应用程序的数学曲线。 曲线定义:起始点、终止点、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化一阶贝赛尔:一阶一阶贝塞尔曲线是一条直线,计算公式为:一阶计算公式二阶贝赛尔:1.步骤一:在平面内选3个不同线的点并且依次用线段连接。如下所示..2.步骤二:在AB和BC线段上找出点D和点E,...

2019-10-31 11:53:16 285

原创 【android UI学习】SweepGradient实现雷达扫描

Shader着色器的讲解,可以参考【android UI学习】Shader着色器我们使用SweepGradient实现雷达扫描效果完整代码如下:public class MyRadarGradientView extends View { private Paint mPaintCircle; // 画圆用到的paint private Paint mPain...

2019-10-25 16:00:49 337

原创 【android UI学习】LinearGradient实现歌词滚动

Shader着色器的讲解,可以参考【android UI学习】Shader着色器这里LinearGradient的实际运用先看运行效果具体思路就是,用LinearGradient设置一个三个字体长度的白色渲染进度条 通过setTranslate(offset, 0),设置渲染条的滚动 postInvalidateDelayed(30),每隔30毫秒刷新界面完整...

2019-10-25 14:20:19 228

原创 【android UI学习】Shader着色器

简介Shader着色器分为BitmapShader(位图渲染);LinearGradient(线性渲染);SweepGradient(梯度渲染);RadialGradient(环形渲染);ComposeShader(组合渲染);BitmapShader 图片渲染BitmapShader 需要传入三个参数:Bitmap:构造shader使用的bitmap tileX:X轴方向的Ti...

2019-10-24 18:14:07 304

原创 【android学习】Jetpack:Room数据库

简介google公司推出的一款类似GreenDao、OrmLite的数据库框架添加依赖dependencies { implementation 'android.arch.persistence.room:runtime:2.2.0' annotationProcessor 'android.arch.persistence.room:compiler:2.2.0'...

2019-10-15 14:37:35 184

原创 【android学习】Jetpack:LiveData共享数据

简介前面讲解了LiveData的简单使用Jetpack:LiveData的简单使用,这里主要讲解livedata的数据共享我们这里使用LiveData进行两个fragment之间通信,达到如下效果先看ViewModel类public class NameViewModel extends ViewModel { //liveData通常和viewModel一起使用...

2019-10-13 15:49:02 843

原创 【android学习】Jetpack:LiveData的简单使用

简介LiveData提供可观察的数据持有者类; LiveData与Fragment、Activity、Service一起持有相同生命周期,LiveData仅更新处于活动生命周期状态的应用程序组件观察者; 提供数据共享。具体优点可以参考官方文档,我们这里简单使用创建LiveDataViewModel类这里我们在MutableLiveData中存放了一个User类,这样就将User类...

2019-10-12 16:57:38 203

原创 【android学习】Jetpack:Lifecycle的简单使用

简介通过观察者模式的思路去对外响应生命周期变化,简单使用在数据埋点中引包 implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'编写自己的MyLifeObserver 需要继承LifecycleObserver ,这里我只监听了activity的onCreate 和 onStart方法publ...

2019-10-11 17:08:23 167

原创 【android学习】Jetpack:DataBinding在recycleview中的使用

简介这文章是结合前面一篇文章写的后续使用,给定的demo包含了上一篇文章的代码,如果有不了解的,可以移步Jetpack:DataBinding数据绑定直接上代码public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { public Context cont...

2019-10-11 16:44:56 585

原创 【android学习】Jetpack:DataBinding数据绑定

简介2018年谷歌I/O 发布了一系列辅助android开发者的实用工具,合称Jetpack,以帮助开发者构建出色的 Android 应用。我们这里主要学习Architecture Components(架构组件),这个组件分为8大模块:Data Binding,Lifecycles,LiveData,Navigation,Paging,Room,ViewModel,WorkManager...

2019-10-10 17:37:25 418

原创 【android学习】MVP学习

mvp与mvc得区别上面这张图是网上找的,可以明显得区别MVP和MVC我们先看一下MVC模型层(model):相当于我们得网络请求 视图层(view):相当于我们得布局文件 控制层(controller):相当于我们得activity相当于我们得activity即要和我们得布局文件打交道,又要和我们得数据层打交道,使得我们得activity就会有相当多得代码,可读性降低,而M...

2019-09-21 18:31:33 117

原创 android架构师之路——IOC原理,简单实现BufferKnife

简介Inversion of Control,英文缩写为IOC,字面翻译:控制反转。什么意思呢?就是一个类里面需要用到很多个成员变量,传统的写法,你要用这些成员变量,那么你就new 出来用呗!IOC的原则是:NO,我们不要new,这样耦合度太高,你配置个xml文件,里面标明哪个类,里面用了哪些成员变量,等待加载这个类的时候,我帮你注入(new)进去。具体可以参考https://www.j...

2019-09-16 19:07:05 259

原创 【android学习】android动态代理

简介为其他对象提供一种代理以控制对这个对象的访问。某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以再两者之间起到中介作用。运行阶段才指定代理哪个对象 静态代理 Subject 类public interface Subject { public void sayGoodBye(); public void sayHello(String ...

2019-09-16 17:32:44 346

转载 【android学习】好的android学习博客

史上最全设计模式导学目录(完整版)https://blog.csdn.net/lovelion/article/details/175172132018美团点评技术年货合辑分享【前端系列】:http://dpurl.cn/DWVhPpS【后台系列】:http://dpurl.cn/obtIVn【系统系列】:http://dpurl.cn/zTDWq8Q【算法系列】:http...

2019-08-30 09:55:51 191

原创 【android学习】okhttp备注

简介这里是基于com.squareup.okhttp3:okhttp:3.14.1OKhttp.builder注释 public static final class Builder { Dispatcher dispatcher; //调度器 /** * 代理类,默认有三种代理模式DIRECT(直连),HTTP(http代理)...

2019-08-29 09:26:49 106

原创 android架构师之路——RXJava实现方式解析

简介一个可观测的序列来组成异步的、基于事件的程序的库。(简单来说:它就是一个实现异步操作的库)GitHub地址:https://github.com/ReactiveX/Rxjava本文得目的简单解析RXJava原理,RXJava的被观察者,观察者,发射器简单实现,最终完成以下代码操作符create创建被观察者 转换符map实现字符串转换 subscribeOn 线程池转...

2019-08-26 15:16:23 134

原创 【android学习】泛型通配符extends与super区别

泛型关键字说明<? extends T>:是指 “上界通配符”?>=T <? super T>:是指 ”下界通配符“?<=T类型结构图在类中 extends 与 super对比?所代表得类,是Meat得父类 即?>=Meat ,本例中?这里可以代表为Meat,Food这两种类型 补充: 出错的两句的?这里,泛型要求传...

2019-08-23 15:29:37 285

原创 【android学习】RXJava2方法简介

简介一个可观测的序列来组成异步的、基于事件的程序的库。(简单来说:它就是一个实现异步操作的库)GitHub地址:https://github.com/ReactiveX/Rxjava三个基本元素 分别为被观察者(Observable),观察者(Observer),订阅者(subscribe)观察者(Observable)onSubscribe() 订阅观察者的时候...

2019-08-20 22:47:37 121

原创 android架构师之路——插件化换肤

简介模块化:将一个项目的可以共享的部分抽取出来,形成独立的lib 组件化:组件化本来就是模块化的概念。核心是模块角色的可转化换性,在打包时,是library;调试时,时application 插件化:将一个完整的工程,按业务划分为不同的插件,来化整为零,相互配合。插件化的单位是apk(一个完成的应用)。 可以实现apk 的动态加载,动态更新,比组件化更灵活。...

2019-08-11 17:22:15 177

原创 【android学习】AIDL跨进程通信

简介AIDL 意思即 Android Interface Definition Language,翻译过来就是Android接口定义语言,是用于跨进程之间通信AIDL支持的数据类型分为如下几种:八种基本数据类型:byte、char、short、int、long、float、double、boolean String,CharSequence 实现了Parcelable接口,S...

2019-08-07 17:49:10 106

原创 【android学习】APP图片内存计算

图片尺寸大小计算当图片文件放在项目的drawable目录时候:drawable文件尺寸与pc中文件尺寸关系目录 屏幕密度 drawable-ldpi 120dpi drawable-mdpi 160dpi drawable-hdpi 240dpi drawable-xhdpi 320dpi drawable-xxhdpi 480dp...

2019-07-30 18:25:11 390

原创 android架构师之路——面向对象数据库

简介BaseDaoFactory 数据库创建,初始化 IBaseDao 增删改查接口 BaseDao 增删改查具体的实现 User 增删改查的对象 DbField 数据库字段名字标注 DbTable 数据库表名注解我们这里只要是学习对象型数据库实现原理,如果要直接使用,可以查看GreenDao直接使用BaseDaoFactorypublic class BaseD...

2019-07-30 11:15:11 156

原创 android架构师之路——APP外置换肤原理解析

简介前面两个项目android架构师之路——修改app字体讲解了LayoutInflaterCompat.setFactory2的使用方式 android架构师之路——以修改一个图片文件方式讲解APP换肤原理讲解了换肤的原理现在我们就在具体实践中,讲解一下更多的使用场景项目结构app:主项目目录 app_skin:资源项目,生成的apk放在sdcard目录 lib_sk...

2019-07-21 17:53:35 404

原创 android架构师之路——以修改一个图片文件方式讲解APP内置换肤原理

简介app换肤,就是将我们设置的对应资源文件,比如drawable,style,textSize等,替换成资源包里面的数据这里我们将以一个简单的替换drawable资源文件,来讲解其原理先来开一个方法,当我们调用getMyResource(R.mipmap.ic_launcher)时候 private int getMyResource(int resId) { ...

2019-07-21 13:46:07 867

简易实现butterkinfe代码

通过apt,javapoet实现butterkinfe代码,通过apt,javapoet实现butterkinfe代码

2019-12-11

简单炫酷Splash界面

简单炫酷Splash界面

2019-11-14

MyDragBubble.zip

仿QQ未读消息拖拽粘性效果的实现,以及贝塞尔曲线运用

2019-11-01

MyRoom.zip

jetpack中的room数据库操作,包括增,删,改,查数据库操作

2019-10-15

livedata数据共享

livedata数据共享,fragment数据共享,activity数据共享

2019-10-13

MyLiveData.zip

LiveData的简单使用,LiveData简单的数据共享 LiveData的简单使用,LiveData简单的数据共享

2019-10-12

DataBinding在recycleview中的使用

DataBinding在recycleview中的使用,DataBinding在recycleview中的使用

2019-10-11

MyViewModel.zip

Jetpack中的DataBinding数据绑定,Jetpack中的DataBinding数据绑定

2019-10-10

mvp改良模型

mvp改良模型,提供学习,提供学习,提供学习

2019-09-21

简单实现MVP逻辑

简单实现mvp逻辑结构,简单实现mvp逻辑结构

2019-09-21

ioc原理实现BufferKnife

ioc原理应用,简单实现BufferKnife注解功能

2019-09-16

ioc原理,简单实现BufferKnife

ioc原理应用,简单实现BufferKnife注解功能

2019-09-16

MyProxy.zip

android动态代理类,包含静态代理,动态代理方式,以及实现了一个onClick方法

2019-09-16

MyRxJava.zip

简单实现rxjava原理,实现了create map 以及线程切换原理

2019-08-26

SkinLoad.zip

插件化换肤方式讲解!!插件化换肤方式讲解

2019-08-11

IPCDemo.zip

aidl是用于跨进程之间通信,这里实现了通信间的相加接口

2019-08-07

DB_Project.zip

android面向对象数据库实现,简单实现增删改查功能

2019-07-30

android换肤原理实现

简单实现android换肤原理,修改string drawable style等

2019-07-21

简单实现app换肤原理

简单通过修改R.mipmap.test文件,实现app换肤功能,简单实现原理讲解

2019-07-21

AOPRequestPermission.zip

用以学习AOP,这里使用AOP实现android 6.0动态权限申请

2019-07-08

HermesEventBus.zip

两个app里面,实现双进程通信,使用方式和eventbus一样

2019-07-04

HermesEventBus单个app里面双进程通信

HermesEventBus单个app里面双进程通信,实现在一个app里面,两个进程间的通信

2019-07-04

android架构师之路自定义eventBus

我这里主要是简单讲解eventBus的代码逻辑思想,以及自己简单实现一个EventBus

2019-07-04

android架构师之路_aop

android的AOP初步搭建,调用流程,提供给初步开始android架构师学习

2019-07-01

自定义view属性

自定义view属性

2015-08-21

afinal jar包

Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据

2015-08-20

中国天气网城市代码整理版

中 国 天 气 网 城 市 代 码 整理 版

2015-04-13

android获取天气

android通过国家天气气象局发布的http获取天气

2015-04-13

空空如也

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

TA关注的人

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