android support library

###1. android.support google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性,如fragement,ViewPager等, 它本质上是一个 java library ###2. android.support.v4 最早(2011年4月份)实现的库。用在Android1.6 (API lever 4)或者更高版本之上。它包含了相对V4, V13大的多的功能。(例如:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabAtrip,Loader,FileProvider 等, 这个包是使用最广泛的,eclipse新建工程时,都默认带有了 ###3. android.support.v7 这个包是为了考虑Android2.1(API level 7) 及以上版本而设计的,但不包含更低,故如果不考虑1.6,我们可以采用再加上这个包, 但是v7是要依赖v4这个包的,也就是如果要使用,两个包得同时 被引用。(v7支持了Action Bar。) ###4. android.support.v13 这个包的设计是为了android 3.2及更高版本的,一般我们都不常用,平板开发中能用到 ###5. android.support.design 这一lib包含了8个新的material design组件, 最低支持Android 2.1, 这个库和github上的很多开源项目是有很大关系的,material design的很多效果,同一种效果在github上有太多的实现,现在官方把部分效果标准化了...

构建交叉编译工具链

###1. 建立编译的目录树 ~/tool-chain |-- src |-- build |-- tools export TARGET=x86_64-linux export PREFIX=~/tool-chain/tools 本文以在x86_64上编译x86_64的工具链为例 ###2. 编译 binutils 从 gnu 官网下载 binutils binutils-2.25, 本文以 binutils-2.25.tar.bz2 为例 $ cd ~/Downloads $ wget http://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2 $ cd ~/tool-chain/src $ tar jxvf ~/Downloads/binutils-2.25.tar.bz2 $ cd...

linux上配置git server和repo

###1. 配置git server git 的远程仓库和本地仓库没有太大的区别, 例如, 可以使用 git clone 直接克隆本地的仓库 $ git clone /home/xxx/xx.git git 支持 https 和 ssh 协议来进行传输, 其中 https 使用简单, 无需配置, 但是每次执行 fetch 和 push 的时候 都要输入帐号和密码, ssh 支持 密码和密钥2种认证方式, 若配置为密钥方式, 则可以免除每次fetch和push操作都要输入密码的麻烦, 因此, 最好使用 ssh 的方式 事实上,...

android init 启动流程

###1. android init android上, init的源码位于 “system/core/init” 目录, 可以编译出 init, ueventd, watchdogd, 本章只关注init ###2. init 启动流程 init 进程为用户空间的第一个进程, 其入口为 main(), 在android上, 启动参数为 “–second-stage” //清除umask umask(0); //添加环境变量 add_environment("PATH", _PATH_DEFPATH); init 的两个阶段: first statge : init第一次运行时, 处于SELinux的kernel domain second stage : 初始化SELinux之后, re-exec...

openssl 证书/签名/加密

###1. openssl OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用openssl 项目网站 ###2. 证书和加密的相关知识 ####2.1 加密算法都有哪些 加密算法主要分为对称加密和非对称加密: 对称加密 : 指双方拥有相同的密钥,用这个密钥加密的也可以用这个密钥解密。常见的有DES,DES3,RC4等 非对称加密 : 指双方使用不同的密钥,分为公钥和私钥,公钥是发给别人,用于加密的,私钥是留给自己用于把别人加密的东西解密的。公钥和私钥是严格成对的。常见的算法有RSA,DSA,DH等 除了这些加密算法一般还会提到叫散列算法,这些算法不是用来加密的,而是把数据转换成一些特定长度的较验数据,用来检验原数据是否被篡改的。常见的有MD5,SHA,Base64,CRC等 ####2.2 CA CA(certification authorit) 的缩写,即证书颂发机构,他是一个负责发放和维护证书的实体 CA的组织结构跟域名有些相似,有一个根CA,然后它派生了一些子的CA, 形成一个链,根证书是CA认证中心给自己颁发的证书,是信任链的起始点, 安装根证书意味着对这个CA认证中心的信任 可以交钱使用第3方的根证书, 也可以使用自签名的根证书 一个CA中心主要是做以下的工作:  1)接受证书申请,验证申请人身份,签发证书,向用户提供证书的下载  2)吊销证书,发布黑名单,发布吊销列表(CRL,certificate revocation list) 通常也把根证书称为CA证书 数字证书则是由CA对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机构的公章)后形成的一个数字文件。数字证书包含证书中所标识的实体的公钥(就是说你的证书里有你的公钥),由于证书将公钥与特定的个人匹配,并且该证书的真实性由颁发机构保证(就是说可以让大家相信你的证书是真的),因此,数字证书为如何找到用户的公钥并知道它是否有效这一问题提供了解决方案 ####2.3 证书的作用 证书主要有两个作用,一个是加密通信,一个是数字签名: 加密通信 : 保证数据不被别人截获并且不被知道通信内容的,主要是两个层次 一个是通信双方身份确认,避免对方是冒充的...