Android2.3源码学习

Android2.3源码为样本,依照罗升阳博客等文章、教程为参照,研究Android框架实现。

环境

采用Mac+ 虚拟机的方式学习,具体环境如下:

Host    : macOS High Sierra(10.13.2)
VM      : VMWare Fusion 10.1.1 (7520154)
Guest   : Ubuntu 12.04.5LTS
Show More

Linux中添加硬盘

下面研究下怎么在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
Show More

Linux中查看硬盘信息

一台电脑中可以安装多块硬盘,下面我们来研究下在Linux中如何查看所有硬盘信息。系统中添加了两块硬盘,第二块没有格式化也没有挂载。

df

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
Show More

Android2.3源码学习02 -- 环境搭建

编译环境

AOSP源码只能在LinuxmacOS操作系统中编译,Android2.3及更高版本只支持64位环境。这里学习在Ubuntu 12.04LTS操作系统中搭建编译环境。

JDK

Android2.3源码编译需要Java JDK 6,详细的对应关系参看官方列表

目前JDK6已经无法通过官方源或PPA直接下载安装,需要手动从官网下载,且需要注册Oracle账户才能下载。下载地址:Java SE 6 Downloads

Show More

Android2.3源码学习01 -- 下载源码

Android源码的开发、学习,官方推荐使用UbuntumacOS系统,下面在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源码到本地:

安装curlgit

AOSP下载工具repo需要安装curlgit工具:

Show More

SSH无法连接:Too many authentication failures

问题

今天使用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登录时的详细输出信息:

Show More

安装 Jekyll

安装Ruby gems

首先需要安装Ruby,请参看:安装Ruby

下面是维基百科中对RubyGems的解释:

RubyGems是Ruby的一个包管理器,提供了分发Ruby程序和函式库的标准格式“gem”,旨在方便地管理gem安装的工具,以及用于分发gem的服务器。这类似于Python的pip。RubyGems大约创建于2003年11月,从Ruby 1.9版起成为Ruby标准库的一部分。
Show More

安装 Ruby

常见的Ruby版本管理工具有rbenvRVM等,这里介绍在macOsUbuntu 16.04LTS中使用轻量的rbenv来安装Ruby的方法。

安装rbenv

Github方式

安装rbenv

采用Github上将rbenv checkout 到本地的方式,这样就不需要系统范围的安装,而且能够及时获取最新版本:

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ cd ~/.rbenv && src/configure && make -C src
Show More

Android HTTP 请求:HttpClient & HttpURLConnection

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学习笔记 03 -- Git 仓库的创建与克隆

初始化代码仓库

我们可以使用 Git 将本地目录初始化为 Git 代码仓库:

$ cd ~
$ mkdir gittest
$ cd gittest
$ git init

以上命令将目录 ~/gittest 初始化为一个 Git 代码仓库,创建了一个名为.git的子目录,里面包含初始化的 Git 仓库中的所有必需文件:

$ ls .git
HEAD  config  description  hooks  info  objects  refs
Show More

—  我的个人空间 |   —