<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lans1996的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lans1996</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lans1996]]></copyright><item><title><![CDATA[时空行者——2019]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/103847073</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/103847073</guid><author>lans1996</author><pubDate>Sun, 05 Jan 2020 20:40:43 +0800</pubDate><description><![CDATA[这个标题取自于汪苏泷的《时空行者》，我很喜欢的一首歌，今天想着给我的年度总结起个什么样高大上的名字好，这四个字就进入了我的脑中。
元旦那天去我很好的一个朋友家里了，因此没有做2019年的总结。今天补上了，算是给自己的一个警醒。看看自己2019年都干了哪些蠢事。
还记得去年元旦的时候是在我那个朋友家过的，那时候只是每天吃吃喝喝，然后看小说看电视，要说不是应该好好学习以求得更好的发展吗？确实，我明确的...]]></description><category></category></item><item><title><![CDATA[Android广播机制简析]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/91393230</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/91393230</guid><author>lans1996</author><pubDate>Mon, 10 Jun 2019 19:07:32 +0800</pubDate><description><![CDATA[1. 广播机制简介
Android 中的广播主要是用来在不同的组件间传递消息用的。 app 能够接收来自 Android 系统或者其他 app 所发送的广播。也能像其发送系统提供的或者自定义的广播。例如，Android系统启动时就会发送一个开机广播，如果想要在开机是处理一些逻辑，可以监听该广播。
应用场景如下：

同一个app内部的同一个组件内的消息通信（单个或多个线程）;
同一个app内部的不同...]]></description><category></category></item><item><title><![CDATA[Android Activity]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/90269284</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/90269284</guid><author>lans1996</author><pubDate>Thu, 16 May 2019 18:20:14 +0800</pubDate><description><![CDATA[Android 四大组件 —— Activity
Actvity是Android中的四大组件之一，平常我们在手机一个用程序上所看的界面就是 Activity 的表现形式。而且 Activity 也是用户唯一能够感知到的组件，每一个UI的界面就是通过 Activity 显示在屏幕上的，平常我们在软件里进行的各种页面的切换很大一部分是不同 Activity 的跳转。
我们在日常生活中不可避免的打开很多...]]></description><category></category></item><item><title><![CDATA[Android Service]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/90269136</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/90269136</guid><author>lans1996</author><pubDate>Thu, 16 May 2019 18:13:24 +0800</pubDate><description><![CDATA[Service 概述
关于 Service 的介绍，官方文档里面有给详细的说明，它是一个可以再用户看不到的情况下长时间执行某项任务的应用组件。它可以由 Activity 通过调用 startService() 方法来启动，也可以跟 Activity 进行绑定，Activity 也可以通过绑定到 Service 来与其进行交互。
一般情况下，Service 会有两种状态：

启动状态：Activit...]]></description><category></category></item><item><title><![CDATA[RecyclerView——添加头部和尾部]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/80035568</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/80035568</guid><author>lans1996</author><pubDate>Sun, 22 Apr 2018 03:26:01 +0800</pubDate><description><![CDATA[ListView中有个addHeaderView方法和addFooterView方法，因此观看了ListView的实现原理之后，发现其实也没那么难，下面我们来看看ListView里面addHeader的流程该方法首先判断传进来的headerView是否在RecyclerView里面的子控件，若不是则抛一个警告，ListView里面有一个mHeaderViewInfos和mFooterViewInf...]]></description><category></category></item><item><title><![CDATA[RecyclerView（三）——添加分隔线]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/79955633</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/79955633</guid><author>lans1996</author><pubDate>Mon, 16 Apr 2018 03:41:09 +0800</pubDate><description><![CDATA[RecyclerView中有一个默认的DividerItemDecoration，用于给RecyclerView添加分割线，实现方法如下recyclerView.addItemDecoration(new DividerItemDecoration(MainActivity.this));//setItemDecoration()方法用于为RecyclerView子项的一些装饰（我个人的理解）然后...]]></description><category></category></item><item><title><![CDATA[Material Design——RecyclerView]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/79846654</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/79846654</guid><author>lans1996</author><pubDate>Sun, 08 Apr 2018 00:30:30 +0800</pubDate><description><![CDATA[虽然RecyclerView要比ListView功能要强大一点，但是我很想问，为何RecyclerView没有设置子项监听事件的方法，使用RecyclerView还要自己编写设置监听的方法，还是挺麻烦的今天我实现了一下为RecyclerView设置监听，代码如下package com.example.lsn2_materialdesign_recyclerview;

import android...]]></description><category></category></item><item><title><![CDATA[Material Design——RecyclerView（二）]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/79841504</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/79841504</guid><author>lans1996</author><pubDate>Sat, 07 Apr 2018 19:32:00 +0800</pubDate><description><![CDATA[上一篇文章讲了RecyclerView的各种布局形式，这次实现一下给RecyclerView的子项定义高度（其实也是笔记，听老师讲了然后自己实现，加深印象）。MainActivity.javapackage com.example.lsn2_materialdesign_recyclerview;

import android.support.v7.app.AppCompatActivity;
...]]></description><category></category></item><item><title><![CDATA[Material Design——RecyclerView]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/79831569</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/79831569</guid><author>lans1996</author><pubDate>Fri, 06 Apr 2018 10:42:32 +0800</pubDate><description><![CDATA[package com.example.lsn2_materialdesign_recyclerview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.sup...]]></description><category></category></item><item><title><![CDATA[Material Design的一些常用控件]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/79826545</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/79826545</guid><author>lans1996</author><pubDate>Thu, 05 Apr 2018 15:51:47 +0800</pubDate><description><![CDATA[废话不多说直接先贴代码package com.example.lsn2_materialdesign_theme_style;

import android.content.DialogInterface;
import android.graphics.Color;
import android.support.v4.widget.SwipeRefreshLayout;
import andr...]]></description><category></category></item><item><title><![CDATA[Material Design学习笔记一]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/79619104</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/79619104</guid><author>lans1996</author><pubDate>Mon, 19 Mar 2018 23:15:35 +0800</pubDate><description><![CDATA[一、关于Material Design从Android5.0开始引入的，是一种全新的设计语言（翻译为“原材料设计”），其实是谷歌提倡的一种设计风格、理念、原则。拟物设计和扁平化设计一种结合体验。二、MD的使用及开发    谷歌开放以及收集了一些最新的开源的项目(很多是自己开发的)，汇集到最新的support兼容支持包以及最新的5.X API里面。    （preference：设置页面，可以通过配...]]></description><category></category></item><item><title><![CDATA[关于2018年的计划]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/79125214</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/79125214</guid><author>lans1996</author><pubDate>Mon, 22 Jan 2018 09:05:06 +0800</pubDate><description><![CDATA[想了很久，不知道该怎么以正确的姿势开是我第一篇正儿八经的博客，于是就打算的自己2018年的计划贴上来算了，2018我想干的事情：
1、继续学习java，想想在学校时懒懒散散的学到了一半，还是要继续学完，现在对于半途而废我是无法忍的
2、学习android，把郭神的第一行代码看完，然后自己写一个练手的APP
3、每天看几篇技术的文章，不断充实自己(微信公众号真是个强大的东西)
4、了解区块链]]></description><category></category></item><item><title><![CDATA[Init进程笔记]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/78294884</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/78294884</guid><author>lans1996</author><pubDate>Fri, 20 Oct 2017 14:17:06 +0800</pubDate><description><![CDATA[init.cpp
//init进程启动的起点
int main(int argc, char** argv) {
    ...
    umask(0);//设置文件属性0777
    add_environment("PATH", _PATH_DEFPATH);
    bool is_first_stage = (argc == 1) || (strcmp(argv[1], "]]></description><category></category></item><item><title><![CDATA[第一行代码笔记 Activity]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/78279609</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/78279609</guid><author>lans1996</author><pubDate>Thu, 19 Oct 2017 00:39:08 +0800</pubDate><description><![CDATA[Activity(活动)是一种可以包含用户界面的组件，主要用于与用户进行交互，一个应用程序可以包含一个或多个活动
创建活动是，勾选Generate Layout File表示会自动为FirstActivity创建一个对应的布局文件，勾选Launcher表示将创建的活动设置为当前项目的主活动，勾选Backwards Compatibility表示会为项目表示启用乡下兼容模式
修改虚拟机的路径：新]]></description><category></category></item><item><title><![CDATA[zygote启动流程]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/78262607</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/78262607</guid><author>lans1996</author><pubDate>Tue, 17 Oct 2017 17:08:23 +0800</pubDate><description><![CDATA[//通过cmd命令，来fork新进程执行类中的main()方法： app_process [可选参数] 命令所在路径 启动的类名 [可选参数]








init.zygote32.rc(system/core/rootdir)
service zygote /system/bin/app_process(可执行程序所在的目录) -Xzygote(虚拟机参数，在启动虚拟机]]></description><category></category></item><item><title><![CDATA[第一章]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/78220908</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/78220908</guid><author>lans1996</author><pubDate>Thu, 12 Oct 2017 22:58:09 +0800</pubDate><description><![CDATA[Android Studio使用Gradle来构建项目


Android程序的项目结构：
1、gradle和idea：这两个目录下放置的都是Android Studio自动生成的一些文件，不需要手动编辑
2、app：项目中的代码，资源等内容几乎都是放置在这个目录下的，后面的开发工作也基本都是在该目录下进行
3、build：包含一些编译时自动生成的文件
4、这个目录下包含了gradl]]></description><category></category></item><item><title><![CDATA[Androidframework LocationManager笔记]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/78144638</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/78144638</guid><author>lans1996</author><pubDate>Sat, 30 Sep 2017 18:00:34 +0800</pubDate><description><![CDATA[LocationManagerService.java extends ILocationManager.Stub


public LocationManagerService(Context context) {
super();
mContext = context;
mAppOps = (AppOpsManager)context.getSystemService(Contex]]></description><category></category></item><item><title><![CDATA[SystemUI笔记 SystemBars]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/78142209</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/78142209</guid><author>lans1996</author><pubDate>Sat, 30 Sep 2017 14:07:25 +0800</pubDate><description><![CDATA[//SystemBars.java(通知栏) : 
@Override
public void start() {
if (DEBUG) Log.d(TAG, "start");
mServiceMonitor = new ServiceMonitor(TAG, DEBUG,
mContext, Settings.Secure.BAR_SERVICE_COMPONENT, this);]]></description><category></category></item><item><title><![CDATA[SystemUI PoweUI笔记]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/78132572</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/78132572</guid><author>lans1996</author><pubDate>Fri, 29 Sep 2017 12:01:04 +0800</pubDate><description><![CDATA[private final Receiver mReceiver = new Receiver();
//PowerUI：电源管理，继承SystemUI，调用start方法启动
public void start() {
//获取PowerManager对象，该类主要用于控制电源状态，处理和power相关的业务
mPowerManager = (PowerManager) mContext]]></description><category></category></item><item><title><![CDATA[SystemUI RingtonePlayer]]></title><link>https://blog.youkuaiyun.com/lans1996/article/details/78132558</link><guid>https://blog.youkuaiyun.com/lans1996/article/details/78132558</guid><author>lans1996</author><pubDate>Fri, 29 Sep 2017 11:59:06 +0800</pubDate><description><![CDATA[//RingtonePlayer.java:继承SystemUI类，启动时调用start()方法
private IRingtonePlayer mCallback = new IRingtonePlayer.Stub() {
//播放音乐
public void play(IBinder token, Uri uri, AudioAttributes aa, float volume, b]]></description><category></category></item></channel></rss>