<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yanglin10000的博客]]></title><description><![CDATA[Java设计模式]]></description><link>https://blog.youkuaiyun.com/yanglin10000</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yanglin10000]]></copyright><item><title><![CDATA[Android rc 文件详解]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/126470706</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/126470706</guid><author>yanglin10000</author><pubDate>Mon, 22 Aug 2022 17:44:03 +0800</pubDate><description><![CDATA[作为Android系统的第一个进程，Init进程承担这很多重要的初始化任务，一般Init进程的初始化可以分为两部分，前半部分挂载文件系统，初始化属性系统和Klog， selinux的初始化等，后半部分重要通过解析init.rc来初始化系统daemon服务进程，然后以epoll的监控属性文件，系统信号等。init.rc则是init进程启动的配置脚本，这个脚本是用一种叫Android Init Language(Android初始化语言)的语言写的。如果你的进程请求Linux的特殊能力，就不要用这个命令。]]></description><category></category></item><item><title><![CDATA[C++宏的使用方法总结]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/126230106</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/126230106</guid><author>yanglin10000</author><pubDate>Mon, 08 Aug 2022 16:22:38 +0800</pubDate><description><![CDATA[在输出日志时，除了输出错误信息外，如果能够把当前的文件名和行号一并打印出来，那就好了，这样的话就可以更快的定位问题了，之前说过，编译器已经为我们预定义了当前文件名和当前行号的宏，我们只要在输出日志时输出这些信息即可。第一次包含此文件时，__SYSTEM_API_H__还没有被定义，因此，头文件的内容被顺利的包含进来，同时，定义了该宏，如果此头文件被重复包含了，那么文件第一行的预处理指令将不会满足，因此文件也就不会被重复包含了。当你的代码中存在大量相似的、重复的代码时，使用宏可以极大的减少代码量，便于书写。.]]></description><category></category></item><item><title><![CDATA[C++中指针和引用的区别]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/126172679</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/126172679</guid><author>yanglin10000</author><pubDate>Fri, 05 Aug 2022 10:27:11 +0800</pubDate><description><![CDATA[a. 指针是一个新的变量，存储了另一个变量的地址，我们可以通过访问这个地址来修改另一个变量;引用只是一个别名，还是变量本身，对引用的任何操作就是对变量本身进行操作，以达到修改变量的目的;c. 指针传参的时候，还是值传递，指针本身的值不可以修改，需要通过解引用才能对指向的对象进行操作，引用传参的时候，传进来的就是变量本身，因此变量可以被修改。b. 引用只有一级，而指针可以有多级;C++中指针和引用有哪些区别?...]]></description><category></category></item><item><title><![CDATA[C++基础之常量与指针]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/126172505</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/126172505</guid><author>yanglin10000</author><pubDate>Fri, 05 Aug 2022 10:21:26 +0800</pubDate><description><![CDATA[1、指针是一个变量，其值为另一个变量的地址，即，内存位置的直接地址。”，p是地址，“*p”是数据。// ，指针的指向不可以修改，指针指向的值也不能修改。//常量指针 ，指针的指向可以修改，但是指针指向的值不能修改。//指针常量 ，指针的指向可以修改，但是指针指向的值不能修改。3、const 修饰既修饰指针也修饰常量  ：指针的指向不可以修改，指针指向的值也不能修改。1、常量指针 ，指针的指向可以修改，但是指针指向的值不能修改。2、指针常量：指针的指向不可以修改，但是指针指向的值可以修改。...]]></description><category></category></item><item><title><![CDATA[Bluedroid: 蓝牙协议栈源码剖析]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/121397352</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/121397352</guid><author>yanglin10000</author><pubDate>Thu, 18 Nov 2021 11:45:55 +0800</pubDate><description><![CDATA[转载：https://www.shuzhiduo.com/A/KE5Q4yDMJL/

]]></description><category></category></item><item><title><![CDATA[Android音频架构总结]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/115953958</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/115953958</guid><author>yanglin10000</author><pubDate>Wed, 21 Apr 2021 14:50:27 +0800</pubDate><description><![CDATA[一.音频总体的架构：







二.Audio Policy

•Stream类型选择合适的device :

•音频管理策略管理音频的输入输出，它决定各种类型的声音优先送往系统哪个输出设备，或使用哪个输入设备进行采样。

•比如，如果有蓝牙耳机或者耳机，将优先使用他们作为输入输出设备。

•创建AudioTrack的时候会传入一个Stream类型，根据这个类型获得strategy，然后根据strategy获得一个device。





•Stream类型选择合适的Strategy类型:...]]></description><category></category></item><item><title><![CDATA[Android 系统源码之HandlerThread]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/103854531</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/103854531</guid><author>yanglin10000</author><pubDate>Tue, 07 Jan 2020 15:28:57 +0800</pubDate><description><![CDATA[HandlerThread是继承自Thread的，所以他本身就是一个线程。
源码不多，就直接贴出来
/*
 * Copyright (C) 2006 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this...]]></description><category></category></item><item><title><![CDATA[App开发智能车载之SDK篇]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/103861972</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/103861972</guid><author>yanglin10000</author><pubDate>Mon, 06 Jan 2020 18:10:42 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/appdevdaily/article/details/44156135
App开发智能车载之SDK篇
网络资源


视频资源 - DevBytes:安卓车载介绍 http://v.youku.com/v_show/id_XODY4NjM1NTI0.html - 安卓车载系统设计介绍: http://v.youku.com/v_show/id_X...]]></description><category></category></item><item><title><![CDATA[Android 系统源码之IntentService]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/103800938</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/103800938</guid><author>yanglin10000</author><pubDate>Thu, 02 Jan 2020 11:58:54 +0800</pubDate><description><![CDATA[IntentService是继承自Service的。启动方式跟service一样调用startService（）

代码不多这里就直接贴出来：
/**
  这里官方给了很好的解释
 * IntentService is a base class for {@link Service}s that handle asynchronous
 * requests (expressed as {@l...]]></description><category></category></item><item><title><![CDATA[android手机各大分区详解]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/103474137</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/103474137</guid><author>yanglin10000</author><pubDate>Tue, 10 Dec 2019 13:50:58 +0800</pubDate><description><![CDATA[bootloader
当我们拿到一款手机，第一件事应该就是按下电源键开机，那么从开机到进入到桌面程序这中间发生了些什么呢，
注意：该结构图并不反映手机的实际分区顺序和位置，只是一个逻辑结构图。

大家可以简单的把手机的ROM存储类比为我们电脑上的硬盘，这个硬盘被分成了几个分区：bootloader分区，boot分区，system分区等等。后面我们会逐渐介绍各个分区的用途。所谓的刷机我们可以简单的...]]></description><category></category></item><item><title><![CDATA[Handler机制的源码分析]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/103385489</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/103385489</guid><author>yanglin10000</author><pubDate>Wed, 04 Dec 2019 15:23:51 +0800</pubDate><description><![CDATA[四大对象：
Looper
Handler
Message
MessageQueue
首先 ，在Android 的主线程ActivityThread的main()方法中 调用了Looper.prepareMainLooper();和Looper.loop()方法。
 `public static void main(String[] args) {
    Trace.traceBegin(Trac...]]></description><category></category></item><item><title><![CDATA[Linux 中常用命令]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/103201957</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/103201957</guid><author>yanglin10000</author><pubDate>Fri, 22 Nov 2019 15:42:20 +0800</pubDate><description><![CDATA[命令基本格式:
命令提示符：[root@localhost ~]#
root 代表当前的登录用户（linux当中管理员账号是root）
@ 无实际意义
localhost 代表当前计算机的主机名
~ 表示当前所在目录（家目录）
# 表示超级用户的提示符 (普通用户为$)
命令格式: 命令 [选项] [参数] （[]表示可以省略）
个别命令的使用不遵循次格式
当有多个选项时，可以写在一起
简化选项和...]]></description><category></category></item><item><title><![CDATA[git分支的操作]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/93464706</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/93464706</guid><author>yanglin10000</author><pubDate>Mon, 24 Jun 2019 10:04:28 +0800</pubDate><description><![CDATA[@ git 本地分支与远程分支
github上已经有master分支 和dev分支
在本地
git checkout -b dev 新建并切换到本地dev分支
git pull origin dev 本地分支与远程分支相关联
在本地新建分支并推送到远程
git checkout -b test
git push origin test   这样远程仓库中也就创建了一个test分支TOC

克隆代码...]]></description><category></category></item><item><title><![CDATA[Android中网络请求框架的封装-Retrofit+RxJava+OkHttp]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/90693919</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/90693919</guid><author>yanglin10000</author><pubDate>Thu, 30 May 2019 11:20:35 +0800</pubDate><description><![CDATA[Retrofit注解
请求方法
注解代码	请求格式
@GET	GET请求
@POST	POST请求
@DELETE	DELETE请求
@HEAD	HEAD请求
@OPTIONS	OPTIONS请求
@PATCH	PATCH请求
请求参数
注解代码	说明
@Headers	添加请求头
@Path	替换路径
@Query	替代参数值，通常是结合get请求的
@FormUrlEncoded	用表单数据提...]]></description><category></category></item><item><title><![CDATA[Android 内存优化-常见内存泄露]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/90693654</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/90693654</guid><author>yanglin10000</author><pubDate>Thu, 30 May 2019 11:10:10 +0800</pubDate><description><![CDATA[没有用的对象无法回收的现象就是内存泄露
如果程序发生了内存泄露，则会带来如下的问题
应用可用的内存减少，增加了堆内存的压力
降低了应用的性能，比如会触犯更频繁的GC
严重的时候可能会导致内存溢出错误，即OOM Error
在正式介绍内存泄露之前，我们有必要介绍一些必要的预备知识。
预备知识1： Java中的对象
当我们使用new指令生成对象时，堆内存将会为此开辟一份空间存放该对象
创建的对象可以被...]]></description><category></category></item><item><title><![CDATA[Android 内存优化- ANR 详解]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/90693564</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/90693564</guid><author>yanglin10000</author><pubDate>Thu, 30 May 2019 11:06:55 +0800</pubDate><description><![CDATA[1.1 何为ANR
ANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.
1.2 为什么会产生ANR
5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等).
BroadcastReceiver在10s内无法结束.
造成以上两种情况的首要原因就是在主线程(UI线程)里面做了太多的阻塞耗...]]></description><category></category></item><item><title><![CDATA[Android性能分析工具常用汇总]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/90693496</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/90693496</guid><author>yanglin10000</author><pubDate>Thu, 30 May 2019 11:04:11 +0800</pubDate><description><![CDATA[Android性能分析工具整理汇总
把做Android开发以来碰到的一些不错的性能分析工具做个整理汇总…
Debug GPU Overdraw
类型：系统自带功能UI渲染检测功能（打开Settings，然后到 Developer Options -&gt; Debug GPU Overdraw 选择 Show overdraw areas，手机系统设置中文的孩纸，自行对照翻译进去哈)
作用：用来检...]]></description><category></category></item><item><title><![CDATA[Android 内存控制及OOM处理]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/90693425</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/90693425</guid><author>yanglin10000</author><pubDate>Thu, 30 May 2019 11:01:45 +0800</pubDate><description><![CDATA[内存溢出，是Android开发中常遇到的问题，解决起来总是摸不着头脑。今天爬爬就来讲讲如何定位内存溢出。
1.OOM（内存溢出）和Memory Leak（内存泄露）有什么关系？
OOM可能是因为Memory Leak，也可能是你的应用本身就比较耗内存（比如图片浏览型的，或者应用本身的设计有问题）。所以，出现OOM不一定是Memory Leak。
同样，Memory Leak也不一定就会导致OOM，...]]></description><category></category></item><item><title><![CDATA[Android 中 Handler 引起的内存泄露]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/90693373</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/90693373</guid><author>yanglin10000</author><pubDate>Thu, 30 May 2019 10:59:40 +0800</pubDate><description><![CDATA[在Android常用编程中，Handler在进行异步操作并处理返回结果时经常被使用。通常我们的代码会这样实现。
public class SampleActivity extends Activity {
private final Handler mLeakyHandler = new Handler() {
@Override
public void handleMessage(Message...]]></description><category></category></item><item><title><![CDATA[Android性能优化总结]]></title><link>https://blog.youkuaiyun.com/yanglin10000/article/details/90693329</link><guid>https://blog.youkuaiyun.com/yanglin10000/article/details/90693329</guid><author>yanglin10000</author><pubDate>Thu, 30 May 2019 10:58:03 +0800</pubDate><description><![CDATA[采用硬件加速，在androidmanifest.xml中application添加android:hardwareAccelerated=“true”。不过这个需要在android 3.0才可以使用。android4.0这个选项是默认开启的。


View中设置缓存属性.setDrawingCache为true.


优化你的布局。通过Android sdk中tools目录下的layoutop...]]></description><category></category></item></channel></rss>