安卓
文章平均质量分 95
好心boy
Android
展开
-
AOP学习笔记(Android)
AOP学习笔记(Android)文章目录AOP学习笔记(Android)AspectJAspectJX目前存在的问题增强注解@Before(前置增强)@After(后置增强)@AfterReturning(返回增强)@AfterThrowing(异常增强)@Around(环绕增强)@Pointcut(命名切入点)切点函数通配符逻辑运算符callexecution例子:@annotation(不支持通配符)within@within(不支持通配符)target(不支持通配符)@target(不支持通配符)w原创 2021-08-23 15:06:06 · 591 阅读 · 1 评论 -
Jetpack Startup源码分析
Jetpack Startup源码分析文章目录Jetpack Startup源码分析简单的用法源码分析InitializationProviderContentProvider初始化时机AppInitializerAppInitializer#discoverAndInitializeAppInitialize#doInitialize总结Jetpack给我们提供一种组件,可以让应用启动时的初始化操作放在一起,在我们启动应用的时候进行初始化。Startup的用法很简单,就需要我们实现Initializ原创 2021-08-23 15:02:19 · 247 阅读 · 0 评论 -
Jetpack Lifecycle源码分析
Jetpack Lifecycle源码分析文章目录Jetpack Lifecycle源码分析简介Lifecycle事件状态简单的使用声明依赖项Coding第一种实现方式第二种实现方式第三种实现方式分析ComponentActivityReportFragmentLifecycleRegistryLifecycle#getTargetState总结简介官方对于Lifecycle的介绍是:生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这原创 2021-08-23 15:00:52 · 549 阅读 · 0 评论 -
Jetpack Navigation学习笔记(源码分析)
文章目录Jetpack Navigation学习笔记简介Navigation的使用(Kotlin为例)添加依赖创建导航图(NavGraph)向Activity添加NavHost并运行导航到目标导航到深度链接(DeepLink)Navigation源码分析NavHostFragmentcreate方法onInflate方法onCreateonCreateViewonViewCreatedNavigation.setViewNavControllerNavController的获取View#findNavCon原创 2021-05-14 15:43:48 · 821 阅读 · 1 评论 -
AppCompatDelegate控件替换分析
文章目录AppCompatDelegate控件替换分析AppCompatActivityAppCompatDelegateAppCompatDelegateImplFactory2AppCompatViewInflater自定义ViewInflater总结AppCompatDelegate控件替换分析我们先看一个有趣的事情,在我们使用theme为AppCompat或MaterialComponents的时候使用xml进行布局,就会发现我们使用的安卓原生自带控件会被以AppCompat或MaterialC原创 2021-05-14 15:41:14 · 1809 阅读 · 0 评论 -
Android消息处理机制
文章目录Android消息处理机制ActivityThread #main方法Looper.prepareMainLooper();ActivityThread thread = new ActivityThread();Looper.loop();MessageQueue.next()HandlerHandler.enqueueMessageMessageQueue.enqueueMessage总结Android消息处理机制ActivityThread #main方法public static vo原创 2020-12-04 12:05:30 · 213 阅读 · 0 评论 -
位操作 ~、&、^、|、>>(>>>)、<<
文章目录位操作 ~、&、^、|、>>(>>>)、<<按位取反(~)按位与(&)按位异或(^)使用异或实现不使用第三个值的情况下交换内容按位或(|)左右移>>(>>>)、<<使用左右移实现乘除位操作 ~、&、^、|、>>(>>>)、<<按位取反(~)按位取反1取0,0取1如:01010001 -> 10101110对13取反:~13 = 2解原创 2020-10-31 03:03:41 · 769 阅读 · 0 评论 -
ThreadLocal
文章目录ThreadLocal简介源码ThreadLocal #setThreadLocal #getThreadLocalMapThreadLocalMap #setThreadLocalMap #getEntryThreadLocal#removeThreadLocal特性总结ThreadLocal简介ThreadLocal是一个线程内部的线程存储类,通过它可以在指定的线程存储数据,并且存储过后只能在存储的指定的线程获取它的值,其他线程无法获取它的值。每一个线程只能获取自己存储的值。用法:Th原创 2020-10-31 03:02:39 · 426 阅读 · 1 评论 -
静态代理、动态代理
静态代理、动态代理文章目录静态代理、动态代理静态代理优点缺点动态代理(JDK动态代理)优点缺点//接口类public interface ICar { void drive();}静态代理目标类实现接口,代理类实现目标类的接口,通过代理类访问目标类的方法。//目标类public class Car implements ICar { @Override public void drive() { System.out.println("开车");原创 2020-10-31 02:58:51 · 99 阅读 · 1 评论 -
记录使用SQLite时遇到的一个关于时间的问题
SQLite时间获取时遇到的问题select date(‘now’);上面的语句可以获取当前的时间2020-03-06,白天用的好好的晚上突然发现时间不对调试后发现有八个小时时差也就是说明使用的时GMT,得指定使用本地设备时区才行date(‘now’,‘localtime’)在加上’localtime’后解决了此问题。。。...原创 2020-03-07 01:28:11 · 1115 阅读 · 0 评论 -
多线程编程(一)
文章目录多线程编程一、线程基础1.进程与线程(1)什么是进程?(2)什么是线程?(3)为什么要使用多线程?2.线程的状态3.创建线程(1)继承Thread重写run()方法(2)实现Runnable接口,并实现该接口的run()方法(3)实现Callable接口,实现call()方法4.理解中断多线程编程在一个Android应用在创建时会开启一个线程,我们称它为主线程或者UI线程,如果我们要进...原创 2020-02-18 15:57:04 · 321 阅读 · 0 评论 -
安卓View—滑动冲突(三)
安卓View—滑动冲突文章目录安卓View—滑动冲突一、前言二、常见的滑动冲突场景场景1场景2场景3三、滑动冲突的处理规则场景1处理规则:场景2处理规则:场景3处理规则:四、滑动冲突的解决方式1.外部拦截法2.内部拦截法一、前言滑动冲突在开发过程中遇到的情况还挺多的,我以前开发 码助 等项目的时候遇到过,当然在使用抖音的时候也遇到过(当场给学姐提交BUG,结果修复的还挺快),我以前解决滑动冲...原创 2019-12-18 20:03:37 · 507 阅读 · 0 评论 -
安卓View—事件分发机制(二)
安卓View—事件分发机制文章目录安卓View—事件分发机制一、基础知识1.事件分发是什么2.点击事件的传递规则3.事件分发的顺序二、事件分发源码分析1.Activity对点击事件的分发过程2.ViewGroup对点击事件的分发过程3.View对点击事件的分发过程三、事件分发总结一、基础知识1.事件分发是什么事件分发就是对MotionEvent事件的分发过程,即当一个MotionEvent...原创 2020-02-03 15:55:11 · 1660 阅读 · 0 评论 -
安卓View — View (一)
目录Android —— View (一)一、 View的基础知识1.什么是View2.View的位置参数3.MotionEvent4.TouchSlop5.VelocityTracker6.GestureDetector二、View的滑动1.scrollTo/scrollBy2.使用动画View动画属性动画3.改变布局参数4.滑动方式对比5.跟随手指滑动的View编写三.弹性滑动1. Scrol...原创 2019-11-26 19:53:55 · 1628 阅读 · 0 评论 -
Activity的启动模式
Activity的启动模式LaunchMode默认情况下我们多次启动同一个Activity的时候,系统会创建多个实例并把它们一一放入任务栈中,任务栈是“后进先出“的栈结构。目前启动模式有四种,分别为:standard、singleTop、singleTask、singleInstance。standard(标准模式)标准模式,这也是系统默认的模式,每次创建一个Activity都会重新...原创 2019-11-14 17:48:03 · 262 阅读 · 0 评论 -
Activity生命周期
Activity生命周期Activity的生命周期对于Android开发者来说是最熟悉不过的东西了,回过头看安卓基础总结一下看的内容Activity常用的生命周期有以下七个,onCreate、onRestart、onStart、onResume、onPause、onStop、onDestroy常用生命周期方法名简介onCreate表示Activity正在被创建,这也是...原创 2019-11-12 22:16:16 · 19597 阅读 · 0 评论 -
使用Flutter编写一个简单的天气查询App
使用Flutter写第一个应用Flutter项目目录分析入口函数home:主页面编写天气应用网络请求数据解析布局编写上中下Flutter项目目录分析文件夹作用android安卓工程相关代码build项目编译产生的目录iosios工程相关代码libflutter相关代码test用于放置测试代码pubspec.yaml配置文件,依赖等...原创 2019-05-25 17:32:26 · 1972 阅读 · 3 评论 -
ListView之BaseAdapter
ListView虽然被RecyclerView替代了,但是ListView作为最常用的控件之一,还是很有必要学习的,咱们来学习一下ListView使用BaseAdapter自定义BaseAdapter,绑定到ListView礼貌性的给一下效果图。emmm,一个很简单的ListView。大致为:主布局添加ListView控件新建item布局并写布局绑定adapter到listv...原创 2018-09-20 11:20:56 · 372 阅读 · 0 评论 -
ViewPager+Fragment+BottomNavigationView
在很多应用中可以同过滑动屏幕来切换页面,在Android开发中咱们可以通过ViewPager和Fragment来实现这一功能,本教程通过 ViewPager+Fragment+BottomNavigationView 来实现底部栏与页面切换没图说个锤子,咱来看看效果图activity_main.xml 布局代码<?xml version="1.0" encoding="utf-8...原创 2018-09-19 12:01:06 · 635 阅读 · 0 评论