- 博客(14)
- 收藏
- 关注
原创 Git 合并冲突
文章目录git merge合并分支举个例子制造一个冲突合并产生冲突解决冲突冲突产生原因 git merge合并分支 git通过git merge操作将指定分支合并到当前分支上,这里的合并指的是将指定分支的修改合并到当前分支上。当git不知道如何合并时就会产生冲突。 # 本地有两个分支:master,beta # 切换到master分支 git checkout master # 将beta分支合并到当前分支master上 git merge beta 如果有冲突,在merge操作后会有提示信息: $ gi
2022-04-22 13:24:25
4717
原创 Android-skin-support换肤框架原理
文章目录AppcompatActivity源码解析创建AppCompatView过程解析 AppcompatActivity源码解析 AppcompatActivity的功能不仅仅是帮我们加了一个ActionBar(绝大部分时候还不需要),还有一个功能是 Built-in switching between light and dark themes by using the androidx.appcompat.R.style#Theme_AppCompat_DayNight theme and App
2020-08-15 19:48:47
557
原创 浅析Java反射
反射 反射是不是在编译时,而是在运行时,动态地获取类型的信息。比如接口信息、成员变量信息、方法信息、构造函数信息。根据这些动态获取的信息创建对象、访问/修改成员、调用方法。 一般的数据操作是是依赖于数据类型的 使用new关键字创建相应类型的对象 new Cat(); 根据类型来定义变量。类可以是基本类型、类、接口、数组 Cat cat; 将特定类型的变量传递给方法。 cat.eat(new food()
2020-07-30 18:38:28
300
原创 记一次使用Set为List去重
遇到一个需求,把一个重复的列表去重。我想这还不简单,我立刻想到了使用Set这个集合类,没有具体研究过,但是知道这个就是可以自动去重的。 所以我写了一个方法: private List<Bean> removeRepeated(List<Bean> beans) { Set<Bean> set = new HashSet<>(); for (Bean bean : beans) { set.add(name); }
2020-07-24 15:27:11
298
原创 Gradle Build 生命周期和获取Manifest示例
Gradle build Gradle是一个基于Apache Ant和Apache Maven概念的自动化构建工具(from Wikipedia) 既然说是构建肯定就会有一个执行顺序的问题,什么先执行,什么后执行,要想了解这个问题,就要先了解Gradle的生命周期。 build 的生命周期 build的生命周期分为3个阶段 初始化阶段 配置阶段 执行阶段 1. 初始化阶段 Gradle 支持单个项目或者多个项目的构建,在初始化阶段,Gradle决定哪些project需要参与构建,同时为每一个Proje
2020-07-17 23:17:28
1950
原创 AS中Gradle干了些什么
前言 相信大家在做Android项目的时候总会遇到一些在构建方面的问题。比如编译了好几个小时还是不成功,不知道哪里出现问题,只能再试一遍。 编译的时候出现问题只知道把报错复制然后去Google,有些搜的到,点进去看了半天不知道什么意思,只能硬着头皮把博客里讲的解决方法自己搞一遍,原理不知道,成功了还好,失败了只能继续找。那搜不到的怎么办,可能是bug,或者可能是xuanxue了。 “那看完这篇博客能让我不再遇到这些问题吗?” “不能” “那我能学会怎么解决这些问题吗?” “不能” “那我能看懂那些博客里写
2020-06-27 18:06:26
355
原创 Springboot入门笔记
目录Springboot操作数据库添加依赖 Springboot操作数据库 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </depend...
2020-04-27 11:57:35
433
原创 Java 优先队列PriorityQueue
优先队列 Java中没有一个叫做Heap的类,确有一个可以实现和堆一样功能的类PriorityQueue,即优先队列。 从名字可以看出,它其实是一个队列,这个队列和其他队列一样有一个入口,一个出口,不一样的地方就是,每个进入队列的元素都有一个优先级,在队列里的顺序就是根据优先级来排序的,优先级高的就会排在队列的前面,优先级低的就会在队列的后面。 每个元素入队的时候,就会根据自己的价值来确定一个优...
2020-04-21 12:43:07
424
原创 FragmentManager坑
getSupportFragmentManager , getParentFragmentManager和getChildFragmentManager getSupportFragmentManager与 activity关联,可以将其视为 activity 的 FragmentManager getChildFragmentManager 与 fragment关联,可以将其视为fragment...
2020-04-21 12:42:33
1019
原创 Android Studio 创建assets目录
assets是Android一种特殊的文件夹,用来存放固定的文件。 新建assets文件夹 这个文件夹默认是没有的,需要我们自己去新建的。 新建路径:app/src/main/assets 右击main-》new -》Directory -》输入assets ...
2020-04-21 12:41:25
492
原创 Activity的四种状态和启动模式
Activity启动模式一共有四种: standard singleTop singleTask singleInstance standard标准模式 创建没有限制,每次使用intent都是一个新的Activity Activity被创建在启动其的Activity的任务栈顶端 Android Lollipop之后,被启动的Activity如果不是同一个应用,会新建一个任务栈 single...
2020-03-30 15:41:20
2723
原创 getParent()与getRootView()
getParent() 和 getRootView() 都是View类下的方法,返回的返回的是一个view getParent() 从名字上来理解, getParent() 是获得它的父View,如果他没有父View返回null。 举个栗子: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.wid...
2020-03-05 21:33:23
1025
原创 Kotlin 函数的基本使用
Kotlin 中的函数和 Java 中的方法并不是一个概念。方法是属于函数的一种,在Kotlin里函数属于一等公民。什么是一等公民呢?那就是和对象有着一样的地位,可以被赋值,传递。而方法只是一种只能写在类里面的,供对象调用的函数即有reciever的函数。 Java中只有方法,没有函数。 函数的定义 fun 函数名(参数名:参数类型): 返回类型{} fun main(args: Array<...
2020-03-05 08:09:28
268
原创 AsyncTask源码完全解析
AsyncTask 源码分析 参考:https://blog.youkuaiyun.com/iispring/article/details/50670388 AsyncTask 使用流程 图源:https://blog.youkuaiyun.com/carson_ho/article/details/79314326 开始准备工作 execute() @MainThread public final ...
2020-01-17 09:59:46
185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅