- 博客(24)
- 收藏
- 关注
原创 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
420
1
原创 Jetpack Startup源码分析
Jetpack Startup源码分析文章目录Jetpack Startup源码分析简单的用法源码分析InitializationProviderContentProvider初始化时机AppInitializerAppInitializer#discoverAndInitializeAppInitialize#doInitialize总结Jetpack给我们提供一种组件,可以让应用启动时的初始化操作放在一起,在我们启动应用的时候进行初始化。Startup的用法很简单,就需要我们实现Initializ
2021-08-23 15:02:19
232
原创 Jetpack Lifecycle源码分析
Jetpack Lifecycle源码分析文章目录Jetpack Lifecycle源码分析简介Lifecycle事件状态简单的使用声明依赖项Coding第一种实现方式第二种实现方式第三种实现方式分析ComponentActivityReportFragmentLifecycleRegistryLifecycle#getTargetState总结简介官方对于Lifecycle的介绍是:生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这
2021-08-23 15:00:52
353
原创 Jetpack Navigation学习笔记(源码分析)
文章目录Jetpack Navigation学习笔记简介Navigation的使用(Kotlin为例)添加依赖创建导航图(NavGraph)向Activity添加NavHost并运行导航到目标导航到深度链接(DeepLink)Navigation源码分析NavHostFragmentcreate方法onInflate方法onCreateonCreateViewonViewCreatedNavigation.setViewNavControllerNavController的获取View#findNavCon
2021-05-14 15:43:48
800
1
原创 AppCompatDelegate控件替换分析
文章目录AppCompatDelegate控件替换分析AppCompatActivityAppCompatDelegateAppCompatDelegateImplFactory2AppCompatViewInflater自定义ViewInflater总结AppCompatDelegate控件替换分析我们先看一个有趣的事情,在我们使用theme为AppCompat或MaterialComponents的时候使用xml进行布局,就会发现我们使用的安卓原生自带控件会被以AppCompat或MaterialC
2021-05-14 15:41:14
1678
原创 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
194
原创 位操作 ~、&、^、|、>>(>>>)、<<
文章目录位操作 ~、&、^、|、>>(>>>)、<<按位取反(~)按位与(&)按位异或(^)使用异或实现不使用第三个值的情况下交换内容按位或(|)左右移>>(>>>)、<<使用左右移实现乘除位操作 ~、&、^、|、>>(>>>)、<<按位取反(~)按位取反1取0,0取1如:01010001 -> 10101110对13取反:~13 = 2解
2020-10-31 03:03:41
667
原创 ThreadLocal
文章目录ThreadLocal简介源码ThreadLocal #setThreadLocal #getThreadLocalMapThreadLocalMap #setThreadLocalMap #getEntryThreadLocal#removeThreadLocal特性总结ThreadLocal简介ThreadLocal是一个线程内部的线程存储类,通过它可以在指定的线程存储数据,并且存储过后只能在存储的指定的线程获取它的值,其他线程无法获取它的值。每一个线程只能获取自己存储的值。用法:Th
2020-10-31 03:02:39
403
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
91
1
原创 记录使用SQLite时遇到的一个关于时间的问题
SQLite时间获取时遇到的问题select date(‘now’);上面的语句可以获取当前的时间2020-03-06,白天用的好好的晚上突然发现时间不对调试后发现有八个小时时差也就是说明使用的时GMT,得指定使用本地设备时区才行date(‘now’,‘localtime’)在加上’localtime’后解决了此问题。。。...
2020-03-07 01:28:11
1048
原创 多线程编程(一)
文章目录多线程编程一、线程基础1.进程与线程(1)什么是进程?(2)什么是线程?(3)为什么要使用多线程?2.线程的状态3.创建线程(1)继承Thread重写run()方法(2)实现Runnable接口,并实现该接口的run()方法(3)实现Callable接口,实现call()方法4.理解中断多线程编程在一个Android应用在创建时会开启一个线程,我们称它为主线程或者UI线程,如果我们要进...
2020-02-18 15:57:04
278
原创 安卓View—事件分发机制(二)
安卓View—事件分发机制文章目录安卓View—事件分发机制一、基础知识1.事件分发是什么2.点击事件的传递规则3.事件分发的顺序二、事件分发源码分析1.Activity对点击事件的分发过程2.ViewGroup对点击事件的分发过程3.View对点击事件的分发过程三、事件分发总结一、基础知识1.事件分发是什么事件分发就是对MotionEvent事件的分发过程,即当一个MotionEvent...
2020-02-03 15:55:11
1560
原创 安卓View—滑动冲突(三)
安卓View—滑动冲突文章目录安卓View—滑动冲突一、前言二、常见的滑动冲突场景场景1场景2场景3三、滑动冲突的处理规则场景1处理规则:场景2处理规则:场景3处理规则:四、滑动冲突的解决方式1.外部拦截法2.内部拦截法一、前言滑动冲突在开发过程中遇到的情况还挺多的,我以前开发 码助 等项目的时候遇到过,当然在使用抖音的时候也遇到过(当场给学姐提交BUG,结果修复的还挺快),我以前解决滑动冲...
2019-12-18 20:03:37
396
原创 安卓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
1488
原创 Activity的启动模式
Activity的启动模式LaunchMode默认情况下我们多次启动同一个Activity的时候,系统会创建多个实例并把它们一一放入任务栈中,任务栈是“后进先出“的栈结构。目前启动模式有四种,分别为:standard、singleTop、singleTask、singleInstance。standard(标准模式)标准模式,这也是系统默认的模式,每次创建一个Activity都会重新...
2019-11-14 17:48:03
250
原创 Activity生命周期
Activity生命周期Activity的生命周期对于Android开发者来说是最熟悉不过的东西了,回过头看安卓基础总结一下看的内容Activity常用的生命周期有以下七个,onCreate、onRestart、onStart、onResume、onPause、onStop、onDestroy常用生命周期方法名简介onCreate表示Activity正在被创建,这也是...
2019-11-12 22:16:16
19441
原创 HTTP的概念、原理、数据格式
HTTP的原理和工作机制HTTP是什么?两种最直观的印象Hypertext Transfer Protocol 超文本传输协议HTTP工作方式URL转换成HTTP报文Request(请求报文)Response(响应报文)请求方法 Request Method状态码 Status CodeHeaderHTTP是什么?两种最直观的印象浏览器输入网址,打开网页客户端中发送网络请求,返回相应内容...
2019-10-29 21:00:46
360
原创 使用Flutter编写一个简单的天气查询App
使用Flutter写第一个应用Flutter项目目录分析入口函数home:主页面编写天气应用网络请求数据解析布局编写上中下Flutter项目目录分析文件夹作用android安卓工程相关代码build项目编译产生的目录iosios工程相关代码libflutter相关代码test用于放置测试代码pubspec.yaml配置文件,依赖等...
2019-05-25 17:32:26
1899
3
原创 Android Studio以及VS Code 的 Flutter开发环境搭建以及简单用法
FlutterFlutter框架结构跨平台自绘引擎Flutter FrameworkFlutter Engine搭建Flutter开发环境获取Flutter SDK更新 Path 环境变量运行 flutter doctor 命令搭建Android Studio开发环境安装Flutter及Dart插件创建应用运行项目搭建VS Code开发环境安装Flutter及Dart插件通过 Flutter Do...
2019-05-23 00:02:39
2299
原创 python 逆序的三位数
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321思路在这里讲两个思路吧1.使用切片的方法使用字符串切片的方法比如[::-1]首先获取输入的内容之后将获取的字符串进行切片之后再转换成...
2019-01-17 21:30:16
21496
3
原创 python 求N的阶乘
python 求N的阶乘python 求N的阶乘python 求N的阶乘本题要求编写程序,计算N的阶乘。输入格式:输入在一行中给出一个正整数 N。输出格式:在一行中按照“product = F”的格式输出阶乘的值F,请注意等号的左右各有一个空格。题目保证计算结果不超过双精度范围。输入样例:5输出样例:product = 120x = int(input())a = ...
2019-01-17 21:08:58
78018
2
原创 C语言鸡兔同笼问题
刚下课就有个朋友发我一个题,题意大概如下:题面描述已知鸡和兔的总数量为n,总腿数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解则输出No answer。输入:两个整数b和m,如上所述。输出:鸡的数目和兔的数目。输入实例:14 32输出实例:12 2那咱就先看看怎么得出鸡的数量和兔子的数量我们假设a = 鸡只数,b = 兔只数(兔的脚数×总只数-总脚数)÷(...
2018-09-28 11:54:51
102470
12
原创 ListView之BaseAdapter
ListView虽然被RecyclerView替代了,但是ListView作为最常用的控件之一,还是很有必要学习的,咱们来学习一下ListView使用BaseAdapter自定义BaseAdapter,绑定到ListView礼貌性的给一下效果图。emmm,一个很简单的ListView。大致为:主布局添加ListView控件新建item布局并写布局绑定adapter到listv...
2018-09-20 11:20:56
349
原创 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
617
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人