
Android
azhoufeng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android app生命周期全局监听(判断app是否处于后台)
一、在Application中注册ActivityLifecycleCallbacks:registerActivityLifecycleCallbacks(myActivityLifecycle);public class MyApplication extends Application { private static MyActivityLifecycle myA...原创 2018-06-19 15:33:01 · 6109 阅读 · 1 评论 -
adb无线连接手机调试配置
1、手机和电脑连入同一个wifi2、手机处于开发者模式,手机连接电脑,在命令行输入:adb tcpip 55553、断开手机和电脑的连接,命令行输入:adb connect <手机ip地址>4、取消连接:adb disconnect <手机ip地址>4、查询电脑连接了多少设备:adb devices5、指定某设备:adb -s <devic...原创 2020-04-23 10:15:22 · 561 阅读 · 0 评论 -
Handler源码解析
一、Looper属性static final ThreadLocal<Looper> sThreadLocal = new ThreadLocal<Looper>();private static Looper sMainLooper; // guarded by Looper.classfinal MessageQueue mQueue;final Thre...原创 2020-04-21 14:42:52 · 255 阅读 · 0 评论 -
RecyclerView源码分析 — LayoutManager
类名功能RecyclerView.LayoutManager负责Item视图的布局的显示RecyclerView.ItemDecoration绘制Item的分割样式RecyclerView.ItemAnimator负责处理数据添加删除时的动画效果RecyclerView.Adapter创建每一项Item视图RecyclerView.ViewHol...原创 2020-03-18 20:37:36 · 597 阅读 · 0 评论 -
类加载器 ClassLoader
一、类加载流程graph LRA[加载]-->B[验证]B-->C[准备]C-->D[解析]D-->E[初始化]类加载过程,虚拟机主要完成三件事:通过类的完全限定名(包名+类名)来获取类的二进制字节流。将这个字节流所代表静态存储结构转化为方法区域的运行时数据结构。在堆内存中生成类的Class对象作为方法区的数据访问入口。二、ClassLoader ...原创 2020-03-06 12:03:35 · 190 阅读 · 0 评论 -
Android启动页图片适配
一、在 drawable 中创建一个 xml 文件:splah.xml<?xml version="1.0" encoding="utf-8"?><bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/app_welcom_bg1" an...原创 2019-12-11 11:16:30 · 4382 阅读 · 0 评论 -
SharedElement
一、共享元素简单使用(Activity -> Activity)1、在第一个Activity的控件中添加属性:android:transitionName="0_image"添加的方式还有:ViewCompat.setTransitionName(imageView,"0_image");imageView.setTransitionName("0_image");2、在第二...原创 2019-09-04 11:11:02 · 335 阅读 · 0 评论 -
IoC的简单使用
一、反射的相关apiAPI描述getClass()获取类getName()获得类的完整名字。getAnnotation(xxx.class)获取注解getMethod()获所有(包括父类)public方法getFields()获所有(包括父类)public属性invoke(xx,yy)执行方法getDeclaredMethods...原创 2019-04-15 16:27:16 · 938 阅读 · 0 评论 -
(五)Android基础系列之:Intent
一、Intent1、意图分类:显示意图:指定了目标组件名的意图对象.隐式意图:没有指定目标组件名的意图对象,它通过意图过滤器中的action,category,data进行匹配找到要启动的目标组件。2、隐式意图匹配规则一:一个意图过滤器(intent-filter)至少包含一个action,否则它将阻塞所有意图匹配成功.规则二:一个意图(intent)中至少包含一个acti...原创 2019-02-20 15:24:08 · 461 阅读 · 0 评论 -
(四)Android基础系列之:Fragment
一、Fragment生命周期函数1、当Fragment第一次依附于它所属的activity时自动调用的方法@Overridepublic void onAttach(Activity activity) { super.onAttach(activity);}2、当Fragment被创建时做初始化操作时自动调用的方法@Overridepublic void onCreate...原创 2019-02-20 15:22:57 · 387 阅读 · 0 评论 -
(三)Android基础系列之:内容提供者
一、ContentProvider使用内容提供者的好处:统一的数据的访问方式1、注册自定义的内容提供者 <!-- 注册自定义的内容提供者 android:authorities="域名":指定内容提供者的域名 android:name="内容提供者的完整包名+类名": android:enabled="true":控制当前内容提供者是否可以使用,true:表示可...原创 2019-02-20 15:20:52 · 523 阅读 · 0 评论 -
(二)Android基础系列之:数据存储
一、Android数据存储分类A:Shared Preferences:存储私有的数据以键值对的形式文件的路径为:/data/data/应用程序主包名/shared_prefs/文件名 文件以Xml的形式存储的.1.读取数据的步骤:A:调用Context对象的getSharedPreferences(文件名,文件的操作模式)得到SharedPreferences对象this.sha...原创 2019-02-20 15:19:22 · 235 阅读 · 0 评论 -
(一)Android基础系列之:ActionBar
一、ActionBar的显示和隐藏1、声明ActionBar对象private ActionBar actionBar;2、得到ActionBar对象this.actionBar=this.getSupportActionBar();3、启用ActionBar上的返回键this.actionBar.setDisplayHomeAsUpEnabled(true);4、显示和隐藏...原创 2019-02-20 15:18:01 · 306 阅读 · 0 评论 -
RxJava源码分析(二):常用操作符
一、map操作符map操作符的作用是将被观察者Observable发送的数据在apply()方法中转化成自己需要的返回到下游Observer的onNext()方法中。例:Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subs...原创 2018-10-08 17:59:30 · 191 阅读 · 0 评论 -
RxJava操作符简记
官方文档RxAndroid源码ProgressOn思维导图一、创建操作符1、create操作符创建一个被观察者Observable对象Observable&lt;String&gt; observable = Observable.create(new ObservableOnSubscribe&lt;String&gt;() { @Override public v...原创 2018-11-20 15:31:11 · 468 阅读 · 0 评论 -
Window flag
参考了:https://blog.youkuaiyun.com/i_lovefish/article/details/80500251、防止锁屏(保持屏幕常量)WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON2、设置全屏WindowManager.LayoutParams.FLAG_FULLSCREEN3、恢复window非全屏显示WindowMan...原创 2018-12-01 14:28:15 · 1128 阅读 · 0 评论 -
Android自定义注解
仿写BufferKnife来熟悉自定义注解1、创建一个Java Library:annotationprocessor注意:一定要创建一个Java Library,而不是Android Library因为在使用自定义AbstractProcessor需要使用到javax包中的相关类和接口,这个在android库中并不存在,所以需要使用到Java库。build.gradle的配置:app...原创 2018-12-07 15:02:45 · 291 阅读 · 0 评论 -
Android开发中的一些问题
1、AndroidStudio运行项目提示:解析软件包错误把图片中箭头所指的地方不勾选2、使用ARouter报错:there’s no route matched the path一般是不同的module使用了相同的一级路径。ARouter要求path必须有两级路径/app/xxx,第一级路径是Group的名称,在Arouter第一次寻找到route的时候便删除了这个一级路径的grou...原创 2019-01-23 15:34:13 · 802 阅读 · 0 评论 -
(六)Android基础系列之:Service
服务:Android系统的后台服务组件,在后台长时间运行并且不提供用户界面的应用程序组件服务的特点:1.没有用户界面2.不会轻易被Android系统终止3.在系统资源恢复后Service也将自动恢复运行状态4.可用于进程间通信一、启动式服务销毁服务时函数的调用:onDestroy()多次销毁服务,不会多次调用onDestroy(),但也不会报错.启动式服务的特点:A:一旦...原创 2019-02-21 14:28:06 · 308 阅读 · 0 评论 -
(七)Android基础系列之:BroadcastReceiver
一、按广播发送的特点:默认情况下,广播接收者的接收顺序就是在功能清单文件中的注册顺序A:正常广播:广播在同一时刻一起发送,接收者会同时收到,其中一个接收者不能终止其它接收者接收广播。实例化意图对象并指定意图对象的actionIntent intent=new Intent(“android.intent.action.hsj”);发送正常广播this.sendBroadcast(in...原创 2019-02-21 14:28:23 · 229 阅读 · 0 评论 -
Android DataBinding的使用
一、介绍本文是用来简记DataBinding使用前的配置及一些情况下的使用。二、环境配置在项目的要使用DataBinding的module的gradle构建文件里添加如下文件:android { .... dataBinding { enabled = true } }DataBinding插件将会在你的项目内添加必需提供的以及编译...原创 2019-02-19 15:22:58 · 1065 阅读 · 0 评论 -
Android 组件化
一、组件化使用的原因及好处原因1、实际业务变化非常快,但是单一工程的业务模块耦合度太高,牵一发而动全身; 2、对工程所做的任何修改都必须要编译整个工程; 3、功能测试和系统测试每次都要进行4、团队协同开发存在较多的冲突.不得不花费更多的时间去沟通和协调,并且在开发过程中,任何一位成员没办法专注于自己的功能点,影响开发效率; 5、不能灵活的对业务模块进行配置和组装;好处1、...原创 2019-02-19 15:44:43 · 138 阅读 · 0 评论 -
Android NDK基础
一、JNI 的概念1、概念JNI全称 Java Native Interface,Java 本地接口。可以通过JNI调用系统提供的API。2、JNI 与 NDK 的区别JNI:JNI是一套编程接口,用来实现Java代码与本地C/C++代码的交互。NDK:NDK是Google开发的一套开发和编译工具集,可以生成动态链接库,主要用于Android的JNI开发。3、JNI 的作用扩展...原创 2019-02-20 10:23:00 · 212 阅读 · 0 评论 -
Andoird屏幕适配方案
1、替换系统的dpi转自:https://blog.youkuaiyun.com/u013000152/article/details/808553152、使用AutoLayout进行屏幕适配转自:https://blog.youkuaiyun.com/zhengjingle/article/details/51742839转载 2018-10-08 17:55:39 · 154 阅读 · 0 评论