<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[alien75的专栏]]></title><description><![CDATA[宁静致远 淡泊明志]]></description><link>https://blog.youkuaiyun.com/alien75</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; alien75]]></copyright><item><title><![CDATA[Android的个人修炼心经]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/104836458</link><guid>https://blog.youkuaiyun.com/alien75/article/details/104836458</guid><author>alien75</author><pubDate>Fri, 13 Mar 2020 11:19:20 +0800</pubDate><description><![CDATA[自从跳出三界奋勇前行三年有余，其间的喜怒哀乐自有体会，收获还是颇丰，但有一点做得不好就是博客停更，虽说任务重时间紧，但或多或少拿它当借口了。言归正传，期间所做的技术工作主要是原生Linux相关的，本以为做Android机会不是很多(做得又不需要太深入)，但是最近的工作又需要转回到Android上(要比较深入)，于是乎又得捡起回看一下原来做Android所做的笔记，缩短一下热身和起步时间。下面所写的...]]></description><category></category></item><item><title><![CDATA[论Camera和MediaRecorder的友情(安卓学习年度总结篇)]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/53640454</link><guid>https://blog.youkuaiyun.com/alien75/article/details/53640454</guid><author>alien75</author><pubDate>Wed, 14 Dec 2016 16:17:11 +0800</pubDate><description><![CDATA[2016年即将过去，在这一时刻总觉得应该写点什么有价值的东西来纪念一下。思前想后，觉得脱离M$体系转向Android/Linux的开发有两年时间了，在这一过程中还是有很多收获的：澄清了一些模糊概念、验证并确认了一些个人做法、领会了开源项目中的精妙内容。由于Android体系的庞大代码量，当初为尽快入门采用的是“提纲挈领、重点突破、由线及面”的策略，在了解Android的整体设计哲学思想(详见引用一，]]></description><category></category></item><item><title><![CDATA[Android的lowmemorykiller演变分析]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/53322769</link><guid>https://blog.youkuaiyun.com/alien75/article/details/53322769</guid><author>alien75</author><pubDate>Thu, 24 Nov 2016 17:28:48 +0800</pubDate><description><![CDATA[在学习Android的lowmemorykiller机制过程中，发现从KK到L再到M有一些新的变化，因此有必要进行一下总结。在开始分析前先厘清一些基础概念，便于描述的展开和结论的形成。

一、基本概念
1、PageCache：Linux内核为加快文件预取而采用的特有机制(参考引用一)，就是尽可能的把空闲内存用于缓存最近访问过的磁盘文件数据。由于会占用大量的空闲内存，在某种情况下就会导致OOM]]></description><category></category></item><item><title><![CDATA[android下使用htop和lsof]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/52755299</link><guid>https://blog.youkuaiyun.com/alien75/article/details/52755299</guid><author>alien75</author><pubDate>Sat, 08 Oct 2016 11:43:24 +0800</pubDate><description><![CDATA[在编译并使用基于android的htop-2.0.2过程中(引用一)，发现查看进程使用文件句柄(快捷键'l'，实际调用命令lsof)信息一直为空白，经研究发现原来android的lsof其实是包含在toolbox中的子功能，其功能很单一不支持命令行参数，现单独编译源代码生成程序供htop调用。
一、编译方式
1、在android框架中编译
在github上有项目(引用二)，是基于4.86在l]]></description><category></category></item><item><title><![CDATA[Git Flow版本控制方式学习]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/52700343</link><guid>https://blog.youkuaiyun.com/alien75/article/details/52700343</guid><author>alien75</author><pubDate>Thu, 29 Sep 2016 11:14:53 +0800</pubDate><description><![CDATA[在团队日常开发中，选择合适的版本控制工具并灵活运用能更好的协调团队开发节奏，并保证公司重要的资产---项目文档资料---的安全性，同时也能为产品发布后的运行维护提供帮助。目前常用的版本控制工具是SVN(集中式)和Git(分布式)，两者各有特点，选用哪种工具根据公司策略及其团队实际情况而定，如公司产品类型(线上或线下)、开发模式(敏捷或原型)、团队规模(单分支或多分支)、开发工具使用(原生或托管)等]]></description><category></category></item><item><title><![CDATA[linux(arm架构)内存管理学习(2)]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/52679754</link><guid>https://blog.youkuaiyun.com/alien75/article/details/52679754</guid><author>alien75</author><pubDate>Tue, 27 Sep 2016 12:49:28 +0800</pubDate><description><![CDATA[在上一篇文章中，主要从MMU的映射规则角度对内存管理进行了一些分析，经过一些初步学习(未包括LPAE方式)发现不同版本ARM对应的MMU映射和工作规则是兼容的(错了请拍砖)，对于差异性就需要通过阅读对应的官方提供的芯片手冊(如多核cortex-a7手冊目前最新版本是r0p5，文件名是DDI0464F_cortex_a7_mpcore_r0p5_trm.pdf)来深入学习了。

        ]]></description><category></category></item><item><title><![CDATA[linux(arm架构)内存管理学习(1)]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/52382979</link><guid>https://blog.youkuaiyun.com/alien75/article/details/52382979</guid><author>alien75</author><pubDate>Wed, 31 Aug 2016 11:11:26 +0800</pubDate><description><![CDATA[在研究内核hibernate实现的时候，由于需要对内存管理如MMU配置、内存分布和分配有相应了解，因此进行了专门的学习。最终结果是hibernate未研究出什么成果，反倒是内存管理的学习小有心得，就此予以总结。当然，按照一贯做法少上代码、多提思路和关键点。
        我所使用的平台是全志的平台T3(四核Cortex-A7、2G DDR)，内核版本是3.10.65，硬件物理地址分布是：
S]]></description><category></category></item><item><title><![CDATA[Android的Jack编译器试用]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/51434980</link><guid>https://blog.youkuaiyun.com/alien75/article/details/51434980</guid><author>alien75</author><pubDate>Tue, 17 May 2016 11:59:19 +0800</pubDate><description><![CDATA[最近在8核(Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz)、64GB内存服务器下编译的Android 6.0时，发现在仅开了四个编译任务(make -j 4)的情况下，服务器的所有CPU占用率和虚拟内存的使用都达到满负荷，导致命令行操作极慢，这在原来编译4.4的时候就算开了八个编译任务都是没有出现过的情况。经分析是因为6.0的java编译工具默认已经由openj]]></description><category></category></item><item><title><![CDATA[音频透传背后的技术实现]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/51333898</link><guid>https://blog.youkuaiyun.com/alien75/article/details/51333898</guid><author>alien75</author><pubDate>Fri, 06 May 2016 20:26:54 +0800</pubDate><description><![CDATA[现在市面上流行的电视盒大部分都是Android，“音频透传”是一个经常见到的词，那到底什么是音频透传、音频透传背后的技术实现到底如何，引起了我的兴趣，因此花了点时间研究了一下。由于是针对全志H8的电视盒方案进行分析，因此分析的结果不具有普遍性，可能其它的方案在技术实现上有所不同。
        在开始分析前先查找了一下关于“透传”这个概念的解释，根据度娘的说法是“透传即是透明传送，即传送网络无]]></description><category></category></item><item><title><![CDATA[关于架构、框架、业务逻辑的理解]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/51178296</link><guid>https://blog.youkuaiyun.com/alien75/article/details/51178296</guid><author>alien75</author><pubDate>Mon, 18 Apr 2016 11:33:56 +0800</pubDate><description><![CDATA[最近在回顾和总结上一个五年的工作成长历程，顺便加入了个人对架构、框架、业务逻辑的理解。由于个人认知有限，难免存在纰漏。
架构：按照我的理解，架构有广义和狭义的解释。从广义角度来说，它是人类进行社会化生产的组织形式，以及为保证组织形式能够正常开展的方方面面。一个典型的案例就是现代企业的组织架构，它从上到下设计了公司的部门组成，相应的也规定了各自的责、权、利，以及日常运作的规章制度-------如员]]></description><category></category></item><item><title><![CDATA[Android的Native方式广播intent]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/50789168</link><guid>https://blog.youkuaiyun.com/alien75/article/details/50789168</guid><author>alien75</author><pubDate>Thu, 03 Mar 2016 16:00:10 +0800</pubDate><description><![CDATA[本文是在在Android中使用native程序（非Java）来广播intent这篇博文的基础上的完整实现，实现了在Native下广播一个即将关机的通知。
#define LOG_TAG "IntentTest"

#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 

namespace]]></description><category></category></item><item><title><![CDATA[Live555在Android下改造]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/50611224</link><guid>https://blog.youkuaiyun.com/alien75/article/details/50611224</guid><author>alien75</author><pubDate>Sat, 30 Jan 2016 14:42:15 +0800</pubDate><description><![CDATA[Live555是一个为流媒体提供解决方案的跨平台的C++开源项目，具体就不做介绍了。从它提供的例子程序来看，都是运行后就不再退出，在实际工作中把它移到Android下做为流媒体服务器运行(TS数据流通过RTSP发送)，但是需要根据WIFI状态的变化来加载和退出，退出的时候还需要保证申请的资源都被释放。为此深入研究了一番代码实现这个目的。
        Live555的基本组件包括UsageEn]]></description><category></category></item><item><title><![CDATA[NDK编译ffmpeg的配置文件]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/49910459</link><guid>https://blog.youkuaiyun.com/alien75/article/details/49910459</guid><author>alien75</author><pubDate>Wed, 18 Nov 2015 17:44:30 +0800</pubDate><description><![CDATA[仅做记录，未涉及背景相关内容
#!/bin/sh

NDK=/home/ffmpeg/android-ndk-r10d
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64

PREFIX=/home/ffmpeg/]]></description><category></category></item><item><title><![CDATA[NDK编译OpenCV-3.0.0的配置文件]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/49910327</link><guid>https://blog.youkuaiyun.com/alien75/article/details/49910327</guid><author>alien75</author><pubDate>Wed, 18 Nov 2015 17:37:37 +0800</pubDate><description><![CDATA[仅做记录，未涉及背景相关内容
#!/bin/sh

export ANDROID_NATIVE_API_LEVEL=21
export ANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-4.9

cmake \
	-DBUILD_SHARED_LIBS=ON \
	-DWITH_OPENGL=ON \
	-DBUILD_opencv_apps=ON \]]></description><category></category></item><item><title><![CDATA[使用vlc-2.21的rtsp点播功能]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/49616835</link><guid>https://blog.youkuaiyun.com/alien75/article/details/49616835</guid><author>alien75</author><pubDate>Tue, 03 Nov 2015 15:58:32 +0800</pubDate><description><![CDATA[在学习流媒体播放的时候，是利用vlc-2.2.1做为调试工具的。由于需要对ts流进行rtsp方式点播，在进行rtsp的C/S两端配置时出现了种种问题，经过一番探索解决问题，发现使用命令行的方式比界面方式方便很多，配置的复杂度集中在服务端，客户端则很简单，界面或命令行方式皆可。
1、vlc -vvv --extraintf=logger test.ts --sout "#duplicate{dst]]></description><category></category></item><item><title><![CDATA[生成Android SDK的深入探索]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/46745547</link><guid>https://blog.youkuaiyun.com/alien75/article/details/46745547</guid><author>alien75</author><pubDate>Fri, 03 Jul 2015 20:35:12 +0800</pubDate><description><![CDATA[基于KitKat(KRT16S)、ARM平台配置进行描述。
 
一、基础概念
1、  sdk级别
高级别sdk：一般就是指android.jar，这个在做应用开发的时候可以直接导入；
低级别sdk：通过如“make  sdk”命令生成的zip文件，包含platforms、platform-tools、tools等目录，以及模拟器、avd管理器、sdk管理器等；这个需要开发工具如eclip]]></description><category></category></item><item><title><![CDATA[配置Android下OpenCV的native开发环境]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/46505479</link><guid>https://blog.youkuaiyun.com/alien75/article/details/46505479</guid><author>alien75</author><pubDate>Mon, 15 Jun 2015 16:59:16 +0800</pubDate><description><![CDATA[在进行配置和编译前，已经安装好了Android的NDK和SDK，以及其它的辅助工具如git、cmake、ant、doxygen等。配置和编译的方法也是基本上按照官方(引用一)所描述的做法进行，由于可以进行系统定制所以并没有选择使用OpenCV Manager/Service，而是编译生成Native共享库、附带生成JavaAPI和JNI的形式进行开发(引用二)，当然也可以使用cmake工程或NDK]]></description><category></category></item><item><title><![CDATA[理解RPC和LPC的概念]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/45914335</link><guid>https://blog.youkuaiyun.com/alien75/article/details/45914335</guid><author>alien75</author><pubDate>Fri, 22 May 2015 10:44:39 +0800</pubDate><description><![CDATA[一直以来对于RPC的概念就是远程调用，缺乏深入的理解，现有利用业余时间做一些了解。

RPC是“远程过程调用(Remote Procedure Call)”的缩写，最早开始是出现在Sun微系统公司和HP公司运行UNIX操作系统的计算机中。RPC的“远程”定义是一个广义的说法，可以发生在不同的主机之间，也可以发生在同一台主机的不同进程之间。

Windows系统做为后起之秀，它是一种宏微混杂]]></description><category></category></item><item><title><![CDATA[学习binder机制的简要笔记]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/44979559</link><guid>https://blog.youkuaiyun.com/alien75/article/details/44979559</guid><author>alien75</author><pubDate>Fri, 10 Apr 2015 14:53:58 +0800</pubDate><description><![CDATA[如标题所言，只是做为学习后的思想总结，仅标识出个人关注的要点。

一、关注的函数
wake_up_interruptible               proc/thread(9)
wake_up_interruptible_all           proc(1)

wait_event_interruptible            thread(1)
wait_event]]></description><category></category></item><item><title><![CDATA[astyle进行源文件格式化的扩展]]></title><link>https://blog.youkuaiyun.com/alien75/article/details/44236713</link><guid>https://blog.youkuaiyun.com/alien75/article/details/44236713</guid><author>alien75</author><pubDate>Fri, 13 Mar 2015 09:39:18 +0800</pubDate><description><![CDATA[astyle是一个对源文件进行格式化的不错工具，它可以嵌入到编辑、编译工具中，也可能直接在命令行运行；可以针对单个文件，也可以针对目录。本文所描述的方法，是指在window下的命令行方式，通过鼠标拖动文件夹到批处理上进行格式化的简易方法，使用的版本是2.0.1。批处理内容如下：
@echo off

::批量将指定目录中的所有C文件用Astyle进行代码美化操作，支持鼠标拖动操作
::参考htt]]></description><category></category></item></channel></rss>