Android系列
文章平均质量分 79
洲汐
互联网小白一枚
展开
-
Jetpack探秘系列(三)----LiveData
在上一篇文章中,Lifecycle组件使得普通类能随时感知Activity/Fragment周期的变化,以此来执行对应周期的逻辑而在本文中,LiveData组件使得Activity/Fragment能够随时感知到界面数据的变化,以此来执行对应的界面数据更新LiveData的基本操作public class MainActivity extends AppCompatActivity { private static final String TAG = "LiveDataDemo";.原创 2021-04-08 09:46:30 · 144 阅读 · 0 评论 -
Jetpack揭秘系列(二)----Lifecycle
public class MyObserver { private static final String TAG = "Lifecycle_MyObserver"; public void activityCreated() { Log.i(TAG, "activityCreated in MyObserver"); } public void activityResume() { Log.i(TAG, "activityResume .原创 2021-04-05 23:54:25 · 218 阅读 · 2 评论 -
Jetpack探秘系列(一)----ViewModel
传统的开发模式中,大多数的处理逻辑和数据都是写在Activity和Fragment,导致两者代码臃肿,因此产生了诸如MVP,MVVM的架构,而ViewModel正是实现MVVM架构最重要的组件之一。ViewModel最重要的作用就是存放Activity和Fragment相关的数据,可以理解为存放页面所有数据的容器,那么问题来了,将数据和界面显示逻辑分开确实能让整体逻辑更清晰,但是为什么数据需要放在ViewModel,它和我们直接新建一个类来保存数据差别优点在哪?其中使用ViewModel最重要的是它原创 2021-04-04 00:06:31 · 271 阅读 · 1 评论 -
android开发中SDK相关的一列问题解析
Android sdk(software development kit)是提供给应用开发者调用google提供的Api的工具集,里面包含了android提供的api源码,编译工具等,具体组成可以看https://blog.csdn.net/zizidemenghanxiao/article/details/50041185。其中最重要的文件是android.jar,平时安卓开发中所调用的库大多数在这个文件中需要注意的是,编译好的apk并不包含android.jar,那么app没有了这些api是如果运原创 2021-03-31 23:36:17 · 495 阅读 · 0 评论 -
Java反射解析
首先放上该博客所用到的两个类Person类:public class Person { public String name; public int age; private int salary; public Person() { } public Person(String name) { this.name = name; } public Person(String name, int age) { thi原创 2021-03-30 00:38:57 · 155 阅读 · 0 评论 -
从android源码分析Handler流程
执行prepareMainLooperActivityThread的main方法是app的入口,首先调用了Looper.prepareMainLooper();查看源码:public static void prepareMainLooper() { prepare(false); synchronized (Looper.class) { if (sMainLooper != null) { throw new IllegalStateExcep原创 2021-03-29 23:21:51 · 111 阅读 · 0 评论 -
measureChild方法解析
在自定义ViewGroup控件中,我们常常需要重写onMeasure->onLayout,onMeasure又会调用子控件的measure方法,该方法又会递归执行到子控件的onMeasure,如此递归,最后所有的子控件都确定了自己的大小(measure结果)和绘制位置(layout)后执行各自的draw方法。其中在ViewGroup控件在执行onMeasure的时候需要对每个子控件都执行//child是子控件,一般通过getChildAt(i)获得//widthMeasureSpec和heigh原创 2021-03-25 00:16:35 · 491 阅读 · 0 评论 -
Android加载流程解析(setContentView布局加载)
本文主要讲述app如何在onCreate方法中调用setContentView来加载布局,对于想知道app从启动到执行setContentView之间的执行逻辑的小伙伴可以查看Android加载流程解析(从app启动到执行onCreate)。首先查看setContentView方法 public void setContentView(@LayoutRes int layoutResID) { getWindow().setContentView(layoutResID); //1原创 2021-03-23 00:14:48 · 216 阅读 · 0 评论 -
Android Studio效率提升设置
本文提供了一些推荐的快捷键设置,读者可以根据自己的习惯定制化。//返回上次光标的位置,推荐ctrl+向左箭头setting->Keymap->Main menu->Navigate->Back//返回下次光标的位置,推荐ctrl+向右箭头setting->Keymap->Main menu->Navigate->Forward//以下推荐不设置,推荐使用默认的shift+shift,可以直接调出All、Classes、Files、Symbols、A原创 2021-03-18 00:38:06 · 330 阅读 · 0 评论 -
Android加载流程解析(从app启动到执行onCreate)
Android软件的主入口也是main,这个main方法定义在ActivityThread中:public static void main(String[] args) { ... Looper.prepareMainLooper(); ActivityThread thread = new ActivityThread(); thread.attach(false); if (sMainThreadHandler == null) { sMa原创 2021-03-07 21:39:42 · 854 阅读 · 1 评论 -
Android Studio小技巧之查找资源
在平时项目开发中,可能整个项目包含很多模块,体量很大,这就需要一些查找的技巧查找指定的类双击Shift键即可查找指定的文件名(包括类文件、资源文件等)查找代码中出现的字符鼠标指向项目名-右键点击Find in Path就可以查找字符,一般快捷键默认是Ctrl+Shift+F,推荐使用快捷键的方式,如果只是想查找单一文件中的字符,只需要Ctrl+F即可查找类的路径有时候通过双击Shift打开对应的类后,需要知道该类所在的路径,可以在类名上右击获取打开类在项目中的位置还是双原创 2021-02-04 00:26:43 · 1298 阅读 · 0 评论 -
浅谈函数式编程
初识函数式接口先介绍一下函数式接口,函数式接口就是有且只有一个抽象方法的接口(可以有多个非抽象方法),常见的函数式接口有Runnable,Comparable等@FunctionalInterfacepublic interface Runnable { void run();}public interface Comparable<T> { int compareTo(T var1);}jdk1.8以后增加了java.util.function包下的常用函.原创 2021-01-25 23:00:13 · 156 阅读 · 0 评论 -
Android Mvp架构详解
注意点:IView和IModel是顶层接口,接口中没有任何方法,用于多态。SingleInterfaceContract中View和Presenter接口以及ISingleInterfaceModel三个接口定义了MVP三层需要实现用于对方调用的方法。V层的基类BaseMVPActivity持有P层的对象,该对象在实现类中初始化,V层需要获取数据只要调用该对象2中对应的方法即可。P层的基类BasePresenter持有V层的对象,该对象在V层调用attach方法的时候初始化,P层需要返回数据只要调原创 2020-12-24 00:32:12 · 395 阅读 · 0 评论 -
Android Studio小技巧之查找中文字符串
首先去提供中文转Unicode的网站,将所需要搜索的中文输入然后在Android Studio中按ctrl+shift+f或者在左上角项目名右键Find in Path输入^((?!(\*|//)).)+[\u4eca]+[\u5929]+[\u5929]+[\u6c14]+[\u771f]+[\u597d],有几个中文输入几个"+[\u****]",注意把Regex正则表达式搜索打开...原创 2020-12-20 13:59:27 · 1172 阅读 · 0 评论 -
Android开发中常用的shell脚本和bat脚本命令
1. 当需要跳转到某个路径下执行操作就可以使用cd命令,下面表示将当前的路径跳转到C:\ZhouXi下C:\shellShow>cd C:\ZhouXi ---------//cd就是change directory的缩写C:\ZhouXi>2. 当需要调试手机,但是不确定手机是否连接上的时候可以使用adb devices查看当前连接的设备C:\ZhouXi>adb devicesList of devices attachedFRU6R204260原创 2020-08-21 00:01:53 · 1583 阅读 · 1 评论 -
Aidl进阶 ----- 自定义类型传输
2020.8.7 第一次编辑。。。未完待续。。。package com.zhouxi.client;import androidx.appcompat.app.AppCompatActivity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import a.原创 2020-08-12 00:25:27 · 464 阅读 · 0 评论 -
Aidl介绍 ----- 常见踩坑原因和解决方案
package com.zhouxi.aidldemo;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity implements View.OnClickListener { @.原创 2020-07-13 00:44:52 · 2028 阅读 · 0 评论