android 研究的环境搭建、高效工具、网站资源
================= 2015 年 10 月 14 号 更新
著名的android开源社区xda有一个帖子,详细描述了android开发和研究环境的初始搭建过程:
http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763
================= 2015 年 2 月 3 号 首发
对付任何东西,都需要软硬兼施,对付android这家伙,软的招是搜集各种系统的、质量较高的文档及博客,先大概过一篇,看看有没有硬伤(就是自己完全不懂的领域);硬的是搭建源码编译和项目执行环境,实际动刀切进去。
开篇研究,就从这两方面入手,由于这里边有些坑,主要是硬的方面拜大GFW所赐,官方的搭建方式可能会弄得吐血,不得不搜办法绕过,感谢那些搭建了国内镜像站的骚年们,you are so great!
====== 先来软的: android 书籍、博客
下面是2014年左右新鲜出炉的android书或文档,作者都是神,大概过一遍可以快速了解android技术层面的架构和设计。
Android_Security_Intern__An_In-Depth_Guide_to_Android_s_Security_Architecture.pdf
Android_Dalvik_DEX_Internals.pdf
博客,老罗的android系列文章非常系统,缺点是版本较低,有一些知识已经不适用的,但不失为一个很好的指导
====== 硬的: android 研究环境搭建
一. ubuntu14.04 上搭建 android 5 源码编译环境
第一步,下载并安装 ubuntu14.04
第二步,下载android源码
官方下载通道非常慢,这里推荐清华大学的镜像,基本用法是:将 https://android.googlesource.com/ 全部使用git://aosp.tuna.tsinghua.edu.cn/android/ 代替即可。
本人(2015年1月)试过速度还行。
1.下载 repo
git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
2. 修改repo
google的地址
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改为清华大学的地址
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
3.下载 manifest
google 的地址
$ repo init -u https://android.googlesource.com/platform/manifest
改为清华大学的地址
$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest
4.同步源码
repo sync
第三步,安装java
apt-get install openjdk-7-jdk, android-5 可以和 opensdk 一起工作了,不需要oracle-jdk
第四步,编译源码
0. 必须为编译机器准备至少4G的内存和80G的磁盘空间,少于4G可能编译的中间会卡死。本人为自己的ubuntu虚拟机划分了6G内存和100G的磁盘空间。
1. 安装依赖的库,
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
2. lunch
选择一种设备
3. make -j3
第五步,执行模拟器
二. win7 上搭建 android studio 项目开发环境
同样,官方的下载渠道几乎无法使用,这里强烈推荐一个国内的android资源小站:http://www.androiddevtools.cn/ , 上面包含了android 开发和研究需要的各种源码、工具的云盘下载链接,非常快速,版本也很新。
1. 在Win7上下载 java 并安装、设置环境变量
2. 下载sdk并安装,如 D:\adt-bundle-windows-x86_64-20140321\sdk
3. 下载 android studio 并安装,关联上述sdk路径
4. 下载sdk资源,这里推荐两种方式,最好的一种是直接从上述网站下载build-tools, platforms, extras, system-images 等各种android组件,然后解压到上述 sdk 路径的相应子路径,重启 android studio ,这种方式比较快。 另外一种是设置 sdk 代理,比如东软的代理:启动 sdk manager, 点击 tools, 点击 option, 设置 http proxy server: mirrors.neusoft.edu.cn, http proxy port: 80, 点击 clear cache , 然后通过 sdk 管理器选择要下载的组件并下载,注意,东软的镜像还是有点慢
====== show time
================= 2015 年 2 月 16 号 更新 —— Genymotion 加速模拟器
android studio 自带了avd 设备管理器,用于创建模拟器、管理模拟器,与 sdk 管理器配合使用,后者负责加载各种版本的andriod 镜像和build工具等, 其界面如下:

android studio 自带的设备模拟器运行速度比较慢,sdk管理器下载设备镜像等需要能翻墙。比较麻烦,这里介绍一个非常牛逼的模拟器软件: genymotion , 这哥们牛逼在哪? —— 不亚于真机的运行速度!
另外,可以非常方便地替换android studio 自带的avd管理器(也不叫不替换了,就是通过安装一个Studio插件增加一个管理器)。安装步骤如下:
1. 从官网 genymotion 下载一个安装软件,并注册账号。在安装过程中,会自动安装 oracle virtualbox 虚拟机。
2. 在android studio 上安装 genymotion 插件, file-settings-Plugins , 点击 browse repositories, 再选择 Genymotion ,安装即可,如下图,安装完后,studio 主界面出现一个类似avd manager的图标,不过是红色的,通过它就可以启动 genymotion 管理器

安装后的图标

3. 也可以直接通过 genymotion 创建和启动模拟器,此时,各种日志自动在 Android studio 的 logcat 等界面出现,非常方便。

================= 2015 年 2 月 16 号 更新 —— android studio DDMS 给模拟器打电话、发短讯
模拟器无法跟真实网络里的手机打电话,但可以通过studio DDMS模块给模拟器打电话、发短讯
1. 在工具栏选择设备监控器 android device monitor

2. 在打开的控制器里点击 emulator control , 填入电话号码,点击 call 即打电话给模拟器

模拟器内部显示接收了电话

3. android studio avd manager 启动的模拟器可以用上述方法打电话,但Genymotion 启动的模拟器,会报一个错 “Could not open '/sys/class/power_supply/genymotion_fake_path/present'” , 按照这里的方法http://blog.csdn.net/wjr2012/article/details/16359113 也解决不了问题,DDMS 无法和 genymotion 启动 device 交互
参考: http://www.cnblogs.com/ymnets/p/3730044.html
================= 2015 年 3 月 9 号 更新 —— Genymotion 启动的模拟器运行 arm ndk 程序失败问题解决
Genymotion 的模拟器依赖于 x86 上的 virtualbox, 直接运行 arm 架构的 ndk 程序或动态库会失败,需要额外安装一个 arm translation 包
==== android 安全相关 =====
安全的概念非常广,网上资源也很多,但大部分是重复的,而且讲得也不够深入,xkungfoo 系列演讲是能找到的比较干货的资源,分享下:
android 研究的环境搭建、高效工具、网站资源的更多相关文章
- android NDK开发环境搭建
android NDK开发环境搭建 2012-05-14 00:13:58 分类: 嵌入式 基于 Android NDK 的学习之旅-----环境搭建 工欲善其事必先利其器 , 下面介绍下 Eclip ...
- 传智播客C/C++各种开发环境搭建视频工具文档免费教程
传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...
- Android自动化测试之环境搭建
Android自动化测试之环境搭建 一.Android-sdk介绍 SDK(Software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台. ...
- android测试开发环境搭建
本文档针对未接触过android的0基础人员,在开始熟悉android之前,首先需要一个学习环境来支撑,在此简单介绍一下android环境搭建.(当然大家也可以百度.谷歌,类似的文档很多) 环境搭建: ...
- Android studio 开发环境搭建
Android studio 开发环境搭建 一.环境: 下载java jdk:http://www.oracle.com/technetwork/cn/java/javase/downloads/jd ...
- Android入门之环境搭建
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1376935560.html 原创:An ...
- Android自动化测试-UiAutomator2环境搭建
Android自动化测试-UiAutomator环境搭建(QQ交流群:490451176) 一.环境准备 1. 安装android sdk,并配置环境变量 2. 安装android studio,国内 ...
- Android 开发之环境搭建-0
Android 开发环境安装与配置 一.开发工具介绍 要进行Android应用程序开发,最起码要有两个工具,一个是Android SDK,它不仅为开发人员提供了丰富的编程接口,而且提供了相关的调试工具 ...
- Android 程序分析环境搭建-静态分析环境搭建
1.2 静态分析环境搭建 这里主要讲一些用的比较顺手的工具,一并列出来,Uaa,等环境配置, 2,notepad++ ,everything , Jdgui ,idea, ida ,Fiddler , ...
随机推荐
- python——numpy_1图像基本操作
1.图像的数组表示: from PIL import Image from pylab import * from numpy import * im = array(Image.open('E:\P ...
- DNS域名解析服务(bind)
DNS(Domain Name System,域名系统): 用于管理和解析域名与IP地址对应关系的技术. 简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的I ...
- Android 浮动按钮+上滑隐藏按钮+下滑显示按钮
1.效果演示 1.1.关注这个红色的浮动按钮 . 可以看到,上滑的时候浮动按钮消失,因为用户迫切想知道下面的东西,而不是回到顶部. 当下滑的时候,用户想回到原来的位置,就可以点击浮动按钮,快速回到顶部 ...
- CSS的z-index & 绝对定位与相对定位
1.在有些情况下,需要仔细地控制元素在网页中堆叠顺序.z-index样式属性让你能够设置元素的堆叠顺序. 堆叠元素时,z-index值较大的元素在z-index值较小的下面. 2.z-index值仅在 ...
- react基本知识点合集
妹子UI里面有React的相关组件与用法:http://amazeui.org/react/components React官方网站:https://facebook.github.io/react/ ...
- USACO Section1.3 Combination Lock 解题报告
combo解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...
- day06_02 元组
1.0 元组 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组.元素卸载小括号(())里,元素之间用逗号隔开. tup1 = () #空元组 tup2 = (20 ...
- 孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2
孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第九天. 今天继续学习mongoDB的简单操作, ...
- C# http Post与Get方法控制继电器
---恢复内容开始--- using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...
- shell中的>&1和 >&2是什么意思?
当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出. 在 shell 程 ...