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 , ...
随机推荐
- POJ:1017-Packets(贪心+模拟,神烦)
传送门:http://poj.org/problem?id=1017 Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions ...
- SVD在推荐系统中的应用详解以及算法推导
SVD在推荐系统中的应用详解以及算法推导 出处http://blog.csdn.net/zhongkejingwang/article/details/43083603 前面文章SVD原理及推 ...
- python re模块实现计算器
def mul_div(exp): #计算乘除 while True: ret = re.search('[\d\.]+[\*\/]-?[\d\.]+', exp) if ret: atom_exp ...
- Android 布局开发之百分比布局、弹性布局
1.百分比布局 很简单,超级简单.引用之后就可以使用了. compile 'com.android.support:percent:23+' git地址: https://github.com/Jul ...
- python的列表生成式和生成器
1.列表生成式是Python受欢迎的语法之一,通过一句简洁的语法就可以对一组元素进行过滤,还可以对得到的元素进行转换处理,语法格式为: [exp for val in collection if co ...
- Android (shape,gradient)使用总结
设置背景色可以通过在res/drawable里定义一个xml,如下: <?xml version="1.0" encoding="utf-8"?> ...
- CodeIgniter学习笔记四:CI中的URL相关函数,路由,伪静态,去掉index.php
一.URL相关函数 1.加载url模块 加载url有两种方式: a.自动加载:在 application/config/autoload.php 中开启 $autoload['helper'] = a ...
- token的作用
token的作用 基于 Token 的身份验证方法 使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的: 客户端使用用户名跟密码请求登录 服务端收到请求,去验证 ...
- Mifare简介
Mifare简介 MIFARE是NXP的知名品牌,是一个应用广泛的非接触式IC产品(13.56MHz非接触性辨识技术),一个典型的通信距离为10厘米,在全球有40多个不同的应用领域.有2.6亿个读写器 ...
- finally代码块不被执行的情况总结
以前跟别人讨论finally关键字,我总是简单的说:“fianly代码块中的代码一定会执行,一般用来清除IO资源等非内存资源(内存资源由GC机制回收)”. 今天翻书发现了几种不会执行的情况,现在总结下 ...