以Android2.3
源码为样本,依照罗升阳
博客等文章、教程为参照,研究Android
框架实现。
采用Mac
+ 虚拟机的方式学习,具体环境如下:
Host : macOS High Sierra(10.13.2)
VM : VMWare Fusion 10.1.1 (7520154)
Guest : Ubuntu 12.04.5LTS
下面研究下怎么在Linux
系统中增加新的硬盘。
当前环境如下:
Host : macOs High Sierra(10.13.6)
VM : VMWare Fusion 10.1.3 (9472307)
Guest : Ubuntu 12.04.5LTS
查看已有硬盘:
$ lsblk -d
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
sr0 11:0 1 1024M 0 rom
一台电脑中可以安装多块硬盘,下面我们来研究下在Linux
中如何查看所有硬盘信息。系统中添加了两块硬盘,第二块没有格式化也没有挂载。
df
命令是用来查看文件系统中硬盘的使用状况的,也可以用来列出系统中挂载的硬盘,使用-h
选项可以以人类可读的格式输出硬盘使用状况:
~$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 55G 3.7G 49G 8% /
udev 2.0G 4.0K 2.0G 1% /dev
tmpfs 394M 776K 394M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 220K 2.0G 1% /run/shm
/dev/sda1 487M 3.3M 483M 1% /boot/efi
AOSP
源码只能在Linux
或macOS
操作系统中编译,Android2.3
及更高版本只支持64位
环境。这里学习在Ubuntu 12.04LTS
操作系统中搭建编译环境。
Android2.3
源码编译需要Java JDK 6
,详细的对应关系参看官方列表。
目前JDK6
已经无法通过官方源或PPA
直接下载安装,需要手动从官网下载,且需要注册Oracle
账户才能下载。下载地址:Java SE 6 Downloads
Android
源码的开发、学习,官方推荐使用Ubuntu
或macOS
系统,下面在Ubuntu 12.04LTS
中学习Android 2.3
源码。
环境如下:
Host : macOS High Sierra(10.13.2)
VM : VMWare Fusion 10.1.0 (7370838)
Guest : Ubuntu 12.04.5LTS
首先,下载Android
源码到本地:
curl
、git
AOSP
下载工具repo
需要安装curl
和git
工具:
今天使用ssh
连接另外一台主机,提示以下错误
$ ssh serverusername@xxx.xxx.xxx
Received disconnect from xxx.xxx.xxx.xxx port 22:2: Too many authentication failures for user
Disconnected from xxx.xxx.xxx.xxx port 22
使用-v
选项来查看ssh
登录时的详细输出信息:
Ruby gems
首先需要安装Ruby
,请参看:安装Ruby
下面是维基百科中对RubyGems
的解释:
RubyGems是Ruby的一个包管理器,提供了分发Ruby程序和函式库的标准格式“gem”,旨在方便地管理gem安装的工具,以及用于分发gem的服务器。这类似于Python的pip。RubyGems大约创建于2003年11月,从Ruby 1.9版起成为Ruby标准库的一部分。
常见的Ruby
版本管理工具有rbenv
、RVM
等,这里介绍在macOs
及Ubuntu 16.04LTS
中使用轻量的rbenv
来安装Ruby
的方法。
rbenv
rbenv
采用Github
上将rbenv
checkout 到本地的方式,这样就不需要系统范围的安装,而且能够及时获取最新版本:
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ cd ~/.rbenv && src/configure && make -C src
Android 客户端开发中,我们通常使用 HTTP 来收发网络数据。
Android 客户端中,网络操作通常都需要如下权限:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Android 系统提供了两种 HTTP 客户端工具以供客户端开发使用:HttpURLConnection 以及 Apache 的 HttpClient。二者都支持 HTTPS、基于流的上传与下载、支持超时配置、IPv6 以及连接池等。
Show More我们可以使用 Git 将本地目录初始化为 Git 代码仓库:
$ cd ~
$ mkdir gittest
$ cd gittest
$ git init
以上命令将目录 ~/gittest 初始化为一个 Git 代码仓库,创建了一个名为.git的子目录,里面包含初始化的 Git 仓库中的所有必需文件:
$ ls .git
HEAD config description hooks info objects refs