<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_38237213的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_38237213</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_38237213]]></copyright><item><title><![CDATA[Android学习笔记——Intent]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/108902236</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/108902236</guid><author>qq_38237213</author><pubDate>Sun, 04 Oct 2020 11:06:34 +0800</pubDate><description><![CDATA[Intent用途
Intent主要用于Android四大组件之间的通信，其常见的作用为：
启动Activaty（startActivity()、startActivityForResult()）
启动Service (startService()、BindService())
传递广播 (sendBroadcast(),sendOrderedBroadcast())
Intent 分类
显式 Intent：通过提供目标应用的软件包名称或完全限定的组件类名来指定可处理 Intent 的应用。
// Execu]]></description><category></category></item><item><title><![CDATA[Java学习笔记—枚举]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/108393949</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/108393949</guid><author>qq_38237213</author><pubDate>Thu, 10 Sep 2020 22:38:18 +0800</pubDate><description><![CDATA[enum基本用法
1.enum在这样使用时分号不是必须的。
public enum Season{
	SPRING,SUMMER,AUTUMN,WINTER
}

2.enum在使用时，会创建 ordinal() 方法，该方法会标明枚举常量的声明顺序。还会生成 static values() 方法，会按照顺序返回常量值组成的数组：
public static void main(String[] args){
	for(Season s:Season.values()){
		println(s.ordin]]></description><category></category></item><item><title><![CDATA[Android学习笔记——Gradle入门]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/108461569</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/108461569</guid><author>qq_38237213</author><pubDate>Tue, 08 Sep 2020 10:12:00 +0800</pubDate><description><![CDATA[一.Groovy
gradle使用Groovy语言开发，理解Groovy语言的语法也是理解gradle的基础。

在Groovy语言中，调用方法时，括号是可以省略的。
method(1,2)====&gt;method 1,2
Groovy语言可以使用闭包，闭包就是将方法作为参数传递。

numList.each({println it})
//如果最后一个参数是闭包，可以放到方法外面
numList.each(){
	println it
}
//括号可以省略变成gradle文件中常见的样子

自定义单参]]></description><category></category></item><item><title><![CDATA[Android学习笔记——进程通信]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/89483957</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/89483957</guid><author>qq_38237213</author><pubDate>Thu, 03 Sep 2020 22:14:23 +0800</pubDate><description><![CDATA[一、Android开启多进程的方式
在Android中开启多进程一般给四大组件在AndroidMenifest中指定android:process属性。该属性赋的值即是进程名。两种赋值方式，一种是“：属性名”，另一种是直接“属性名”前者会给进程赋名前加上包名。前者属于应用的私有进程，其他组件不可以和它跑在同一个进程中。
二、多进程可能造成的问题
由于是在两个虚拟机中：
（1）静态成员单例模式完全失...]]></description><category></category></item><item><title><![CDATA[Java学习笔记——注解]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/96040656</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/96040656</guid><author>qq_38237213</author><pubDate>Tue, 16 Jul 2019 23:48:51 +0800</pubDate><description><![CDATA[定义并使用注解需要三步：
1.定义注解
1.1 注解的定义需要关键字 @interface
1.2 需要元注解来修饰定义的注解
1.3 注解中一般会包含一些元素以表示某些值
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Constraints {
    boolean primar...]]></description><category></category></item><item><title><![CDATA[Java反射的一点记录]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/95986415</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/95986415</guid><author>qq_38237213</author><pubDate>Mon, 15 Jul 2019 17:07:00 +0800</pubDate><description><![CDATA[getFields是获得包括从父类继承的所有public权限的变量
getDeclaredFields是获得该类声明的所有变量，不含从父类继承
    private static void printFields(){
        //1.获取并输出类的名字
        Class mClass = SonClass.class;
        System.out.println("...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——内存泄漏]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/90274507</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/90274507</guid><author>qq_38237213</author><pubDate>Mon, 15 Jul 2019 16:42:19 +0800</pubDate><description><![CDATA[参考网上别人的文章，做一下内存泄漏情况的总结及解决方法
单例模式造成的内存泄漏
如果单例的成员中有Context的话，由于单例在生成后就一直存在于内存中，所以其持有的Context对象不会被回收，即Activity很难会被回收。
可以让其持有Application的Context对象即可：
public class SingleInstanceTest {
    private static S...]]></description><category></category></item><item><title><![CDATA[开发工具笔记——Git学习]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/90265144</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/90265144</guid><author>qq_38237213</author><pubDate>Thu, 16 May 2019 16:37:50 +0800</pubDate><description><![CDATA[使用git前需要在所在目录创建仓库：
git init
将修改提交到仓库：
git add  将文件存储到暂存区
git commit -m “&lt;提交的信息&gt;”  将暂存区的文件提交到仓库中
commit 一次提交很多文件，可以add多次
查看状态
git status 查看当前仓库状态
git diff &lt;文件名&gt; 查看修改文件的不同
git log 查看提交记录
版本回...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——AIDL与Binder(大坑待填)]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/90142473</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/90142473</guid><author>qq_38237213</author><pubDate>Sun, 12 May 2019 17:35:24 +0800</pubDate><description><![CDATA[Binder主要用在Service中，包括AIDL和Messenger。AIDL是用来辅助生成Binder的一种途径。
一、AIDL的使用
AIDL生成Binder还没有调通（就是绑定不上远程Service啊怎么回事），好像没脸写AIDL的使用了，就把别人是使用方式链接贴上来吧：
https://www.jianshu.com/p/29999c1a93cd
关于AIDL生成的Binder，姑且权当...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——设计模式]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/89921737</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/89921737</guid><author>qq_38237213</author><pubDate>Tue, 07 May 2019 16:49:05 +0800</pubDate><description><![CDATA[android常用设计模式学习笔记
一 单例模式
public class Singleton {
    private static volatile Singleton instance = null;

    private Singleton(){
    }
    public static Singleton getInstance() {
        if (instanc...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——ContentProvider用法]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/89070022</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/89070022</guid><author>qq_38237213</author><pubDate>Sun, 07 Apr 2019 16:26:29 +0800</pubDate><description><![CDATA[本文用作记录ContentProvider的两种用法，分别是访问他人提供的ContentProvider以及自己创建自己的ContentProvider。
一、访问他人的ContentProvider
访问他人的ContentProvider需要借助ContentResolver类，对ContentResolver进行操作与SQLite的操作十分相似。与其不同的是，ContentResolver需...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——SQLite初探]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/89067321</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/89067321</guid><author>qq_38237213</author><pubDate>Sun, 07 Apr 2019 12:16:23 +0800</pubDate><description><![CDATA[本文主要介绍SQLite初步使用步骤、方法：
一、SQLiteOpenHelper相关操作
SQLite的使用主要借助SQLiteOpenHelper帮助类，通过调用它的getReadableDatabase()以及getWritableDataBase() 方法可以获得一个数据库对象。SQLiteOpenHelper是一个抽象类，需要对其进行重写。
需要对其进行重写的有它的构造方法，onCrea...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——Actvity启动模式]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/83793356</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/83793356</guid><author>qq_38237213</author><pubDate>Mon, 04 Mar 2019 21:24:16 +0800</pubDate><description><![CDATA[Activity的四种启动模式
1.standard，被启动的Activity会运行在启动它的Activity所在的栈中，每次启动都会新建一个Activity实例。
2.singleTop，如果新的Activity已经有位于栈顶的实例，那么它不会新建实例，但是会调用它的onNewIntent方法。如果栈中有Activity的实例但是不是位于栈顶，还是会新建一个实例。
3.singleTask，首先...]]></description><category></category></item><item><title><![CDATA[Java学习笔记——JVM类加载]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/84557382</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/84557382</guid><author>qq_38237213</author><pubDate>Wed, 28 Nov 2018 21:36:27 +0800</pubDate><description><![CDATA[对于JVM来说，class文件的来源并不影响JVM对class文件的使用，也就是说JVM可以处理的class文件不一定是来自于java语言，也可以是其他运行在JVM上的语言，甚至是字节码编辑器直接生成的class字节文件、网络流以及运行时生成的class文件。也就是只要是JVM可以识别的class字节码文件，都可以运行。
JVM中类加载的生命周期是：加载，验证，准备，解析，初始化。
一、对类进行初...]]></description><category></category></item><item><title><![CDATA[Java学习笔记——JVM垃圾回收]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/84448959</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/84448959</guid><author>qq_38237213</author><pubDate>Sun, 25 Nov 2018 14:40:05 +0800</pubDate><description><![CDATA[JVM垃圾回收主要面向JVM内存区域中的Java堆以及方法区，其中最主要的区域是堆。
一、判断是否需要回收
判断对象是否需要回收，不可以采用引用计数法，即有引用指向对象则计数加一，不指向它时则减一，该数字为零时可回收。这样不行，因为无法解决循环引用的问题，即有环时，则环中的对象永远无法被回收。
可达性分析法：
当一个对象对于任何GC Root不可达时，则此对象可以被回收
GC Root:
1.虚拟...]]></description><category></category></item><item><title><![CDATA[Java学习笔记——JVM之内存区域]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/84446880</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/84446880</guid><author>qq_38237213</author><pubDate>Sat, 24 Nov 2018 16:25:05 +0800</pubDate><description><![CDATA[JVM内存区域
JVM内存区域算是面试中问到比较高的基础中的基础了吧，特此记录。
1.程序计数器
线程私有，记录指令地址，用于储存当前线程所执行的字节码的行号。
2.Java虚拟机栈
线程私有，就是通常所说的“栈区”，用于描述java方法执行。每调用一次方法就会创建一个“栈帧”并将其压入栈中，方法执行完出栈。
栈帧中存有局部变量表等信息，java方法中的局部变量（包括基本数据类型以及引用数据类型）...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——Activity生命周期]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/83758168</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/83758168</guid><author>qq_38237213</author><pubDate>Tue, 06 Nov 2018 19:48:06 +0800</pubDate><description><![CDATA[之前面试Android时，面试官问过我Activity生命周期的问题，答得不是很好，翻看了一下书籍，在此将书里的知识做个笔记。
正常情况下Activity生命周期
正常情况下Activity的生命周期方法为依次为onCreate，onStart，onResume，onPause，onStop，onDestroy。
onStart，onResume的区别
onStart阶段的时候，Activity已...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——通知&服务]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/83386803</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/83386803</guid><author>qq_38237213</author><pubDate>Tue, 30 Oct 2018 22:31:22 +0800</pubDate><description><![CDATA[通知
通知的基本用法
发送通知需要两个对象，分别是NotificationManager的实例以及Notification的实例。
得到NotificationManager实例的方法是调用Context的getSystemService方法
NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION...]]></description><category></category></item><item><title><![CDATA[Android学习笔记——广播]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/83316569</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/83316569</guid><author>qq_38237213</author><pubDate>Wed, 24 Oct 2018 23:12:21 +0800</pubDate><description><![CDATA[标准广播和有序广播
在Android系统中，标准广播是一种完全异步执行的广播，广播发出后，所有的广播接收器几乎会在同一时刻接收到这条广播消息，没有先后顺序之分。
有序广播则是一种同步执行的广播。在广播发出后，同一时刻只有一个广播接收器能够接收到这条广播，当这条广播中的逻辑执行完毕后，广播才会继续传递。此时广播接收器有先后顺序，在前面的广播接收器可以拦截正在传递的广播。
动态注册广播和静态注册广播接...]]></description><category></category></item><item><title><![CDATA[Android点击事件分发/拦截学习心得]]></title><link>https://blog.youkuaiyun.com/qq_38237213/article/details/83279152</link><guid>https://blog.youkuaiyun.com/qq_38237213/article/details/83279152</guid><author>qq_38237213</author><pubDate>Mon, 22 Oct 2018 21:19:12 +0800</pubDate><description><![CDATA[这篇博文是在阅读了《Android开发艺术探索》（任玉刚），并在自己写了一个相关控件后进行总结的目的的博文，本文主要介绍自己从书中学到的Android点击事件的分发拦截相关知识点以作记录。
一、点击事件的流向
点击事件在Android系统中具体表示为MotionEvent，可以在可以通过其getAction() 方法获得点击事件的类型包括ACTION_DOWM（按下）、ACTION_MOVE（滑动...]]></description><category></category></item></channel></rss>