Android程序分析环境搭建-Windows篇
Android程序分析环境搭建-Windows篇
上一篇讲了如何在Ubuntu上搭建Android程序分析环境,现在,我们继续讲解如何在Windows上完成这些操作。
Windows分析环境搭建
如果读者不打算在Windows环境上编译Android源码,则最低可以使用Windows XP作为系统的配置环境;反之,如果需要使用
Docker
来编译Android系统源码,则需要满足
Docker
运行的最低系统要求,即最低需要Windows 7旗舰版以上,笔者推荐使用Windows 10。
安装JDK
尽管现在Android软件可以使用Kotlin语言来开发,但在未来很长的一段时间内,使用Java语言开发Android软件仍然会占很大的比例,JDK也就成了Android软件开发必装的软件之一。Windows平台的JDK安装只有一个可选项,即Oracle公司提供的JDK。可以到它的官网上进行下载安装。下载地址为: http://www. oracle.com/technetwork/ java/javase/downloads/index.html ,打开下载页面,可以看到JDK的多个版本,目前Android软件开发支持到最新的版本是JDK 8。下载最新的JDK 8安装包exe文件,然后双击运行,按照默认的安装选项,不停的下一步即可完成安装。
安装完成后手动添加
JAVA_HOME
环境变量,它的值为JDK安装后的完整路径。例如JDK版本8u131,按照默认的安装路径,可将
JAVA_HOME
环境变量设置为“
C:\Program Files\Java\jdk1.8.0_131
”。然后将“
%JAVA_HOME%\bin
”添加到系统的
PATH
变量中,方便
Android Studio
或其他第三方软件找到
Java
编译器的位置。
安装完成后检查一下
Java
是否安装成功。单击“开始”按钮,选择“运行”,在出现的对话框中输入CMD命令打开命令提示符窗口,在窗口中输入
java –version
,如果屏幕上出现如下所示的输出信息,说明安装成功。
> java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
安装Android SDK
新版本的
Android Studio
包含了Android SDK,如果读者不打算使用
Android Studio
来开发Android软件,而选择命令行方式使用Android SDK,则可以下载Android SDK的单独版本;反之,则可以跳过本小节,直接参考
Android Studio
的安装配置方法。
Android SDK是以zip压缩包的形式提供给开发人员的。首先到Android官网下载最新版本的SDK,下载地址为: https:// developer.android.com/s tudio/index.html 。如图所示,点击下载链接即可。
下载并解压其压缩包,发现只包含一个tools目录,里面只包含了最新的SDK管理工具,而不包含具体的SDK包的内容。执行tools/bin目录下的sdkmanager.bat脚本可以下载其他的SDK软件包。Android SDK运行需要用到
Java
运行环境,在执行sdkmanager.bat脚本前,请确认JDK已经安装好且配置好
JAVA_HOME
环境变量,最新版本的Android SDK必须要求最低JDK 8的运行环境,如果安装的是低版本的JDK,则可能会提示运行错误。
新版本的Android SDK不再提供UI界面管理SDK的查看、安装与卸载。所有这些操作只能通过命令行的方式来完成。执行下面的命令查看已经安装与可安装的SDK包。
>sdkmanager --list
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
tools | 26.0.1 | Android SDK Tools 26.0.1 | tools\
Available Packages:
Path | Version | Description
------- | ------- | -------
add-ons;addon-g..._apis-google-15 | 3 | Google APIs
......
build-tools;25.0.3 | 25.0.3 | Android SDK Build-Tools 25.0.3
cmake;3.6.3155560 | 3.6.3155560 | CMake 3.6.3155560
docs | 1 | Documentation for Android SDK
emulator | 26.0.3 | Android Emulator
extras;android;gapid;1 | 1.0.3 | GPU Debugging tools
......
extras;m2reposi...nt-layout;1.0.2 | 1 | ConstraintLayout for Android 1...
lldb;2.0 | 2.0.2558144 | LLDB 2.0
lldb;2.1 | 2.1.2852477 | LLDB 2.1
lldb;2.2 | 2.2.3271982 | LLDB 2.2
lldb;2.3 | 2.3.3614996 | LLDB 2.3
ndk-bundle | 14.1.3816874 | NDK
patcher;v4 | 1 | SDK Patch Applier v4
platform-tools | 25.0.6 | Android SDK Platform-Tools
......
platforms;android-24 | 2 | Android SDK Platform 24
platforms;android-25 | 3 | Android SDK Platform 25
platforms;android-7 | 3
......
sources;android-23 | 1 | Sources for Android 23
sources;android-24 | 1 | Sources for Android 24
sources;android-25 | 1 | Sources for Android 25
system-images;a...ult;armeabi-v7a | 4 | ARM EABI v7a System Image
system-images;a...-10;default;x86 | 4 | Intel x86 Atom System Image
......
system-images;a...google_apis;x86 | 4 | Google APIs Intel x86 Atom Sys...
system-images;a...gle_apis;x86_64 | 4 | Google APIs Intel x86 Atom_64 ...
tools | 26.0.2 | Android SDK Tools
Available Updates:
ID | Installed | Available
------- | ------- | -------
tools | 26.0.1 | 26.0.2
done
Installed packages
部分是已经安装的包。
Available Packages
是可以下载的包,其中
Path
是包的下载安装目录路径,以分号“;”分隔;
Version
是对应的版本号;
Description
是包的描述信息。例如下载安装Android SDK提供的最新版本的模拟器emulator,可以执行如下命令:
> sdkmanager emulator
命令执行后会弹出提示接受LICENSE,输入"y"后回车,此时会开始下载模拟器。执行以下命令可以下载平台相关的工具,里面包含了
adb
、
fastboot
等命令:
> sdkmanager platform-tools
执行以下命令可以更新所有可更新的包:
> sdkmanager --update
Android SDK默认只提供了最新版本的SDK Tools,并不包含开发用的平台SDK与构建工具,如果想要开发Android程序,还需要下载其他额外的包。以Android 7.1开发为例,还需要执行如下命令:
> sdkmanager build-tools;25.0.3
> sdkmanager docs
> sdkmanager platforms;android-25
> sdkmanager sources;android-25
下载完所有需要的包后,将常用的工具所在路径加到系统的
PATH
环境变量中。其中包含
adb
、
fastboot
的platform-tools目录;包含
aapt
、
apksigner
、
dexdump
、
zipalign
的build-tools/25.0.3目录;包含
android
、
monitor
、
emulator
的tools目录等。
完成以上操作后,在命令提示符下输入“emulator -version”与“adb version”命令查看是否能成功运行。执行结果如下所示:
> emulator -version
Android emulator version 26.0.3.0 (build_id 3965150)
This program is a derivative of the QEMU CPU emulator (www.qemu.org).
This software is licensed under the terms of the GNU General Public
License version 2, as published by the Free Software Foundation, and
may be copied, distributed, and modified under those terms.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
> adb version
Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android
Installed as E:\Android\sdk\platform-tools\adb.exe
至此,Android SDK的安装配置就算完成了。
安装Android NDK
Android NDK可以单独用来开发Android原生的动态库与可执行程序,也可以配合Android SDK开发包含原生代码的Android软件。如果之前安装了Android SDK,可以在命令行下执行如下命令安装Android NDK。
> sdkmanager ndk-bundle
新版本的Android工程使用Cmake来构建,并使用lldb来调试,如果同时需要编写Java与Native代码,还需要在这里安装它们。执行如下命令:
> sdkmanager cmake;3.6.3155560
> sdkmanager lldb;2.3
除了Android SDK方式安装Android NDK外,也可以从Android官网上下载最新的Android NDK压缩包进行安装,地址是: https:// developer.android.com/n dk/downloads/index.html 。如图所示,点击链接中的Windows版本,下载最新的Android NDK压缩包即可。
解压下载的压缩包后,将NDK的根目录添加到系统的
NDK_HOME
环境变量,并将其添加到系统的
PATH
环境变量。在命令提示符下执行
ndk-build -v
,可以正常显示如下输出信息,说明配置完成了。
> ndk-build -v
GNU Make 3.81
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i586-pc-mingw32
Android Studio集成开发环境
Android Studio
是全新的Android软件开发IDE,它包含了整套Android开发所需的SDK以及配置工具,如果读者决定使用
Android Studio
来开发Android程序,可以跳过前面安装配置Android SDK与Android NDK的步骤,直接使用
Android Studio
来安装它们。
首先到
https://
developer.android.com/s
tudio/index.html
下载最新的
Android Studio
。Windows平台分为包含了Android SDK的exe安装版本,与不包含Android SDK的exe安装版本及zip压缩包版本。如图所示:
不包含Android SDK的版本,会在第一次运行时,联网下载最新版本的SDK及构建工具。包含Android SDK的版本,则自带了最新版本的SDK,按照向导不停的下一步即可安装完成。
安装完成后启动
Android Studio
,点击主界面上的Configure->SDK Manager,会弹出SDK管理界面。在这里可以下载安装需要的软件包与构建工具。如图所示,Cmake与LLDB可以直接在这里勾选安装,非常方便。
使用
Android Studio
的过程中,不需要一次性下载所有版本的SDK与构建工具,在编译第三方项目或构建新项目时,
Android Studio
会根据实际情况,提示用户下载相应版本的SDK。用户体验方面比之前基于Eclipse的ADT开发工具要优秀得多。
创建Android模拟器
在创建Android模拟器前,请在
Android Studio
中确认本机已经安装模拟器必须的镜像文件。如图所示:
使用
Android Studio
创建Android模拟器,需要先打开一个Android工程。在打开的工程界面上,点击菜单Tools->Android->AVD Manager,会弹出Android模拟器创建对话框,如图所示:
点击Create Virtual Device...按钮,弹出虚拟设备创建窗口,选择设备的类型,例如Nexus 6p,点击Next,选择创建的系统版本。支持的系统版本会在这里全部列出来,默认情况下会选择本机安装的最新系统版本镜像,对于本机没有安装的系统版本,会在系统版本名称的旁边显示一个Download按钮,点击该按钮,可以下载相应的虚拟设备镜像。如图所示,选择Nougat后点击Next,确认设备类型与版本号无误后,点击Finish即可完成创建。
在返回的AVD Manager管理界面,选择创建好的模拟器,点击Action栏的绿色启动按钮,或者在选择的模拟器上双击,就会启动模拟器。
使用时间较长的模拟器,可以在AVD Manager管理界面中选中它,然后右键选择Wipe Data清空数据,将模拟器内容重置,或者选择Delete删除后重新创建。
CygWin
为了保证在内容讲解的过程中,工具的操作与输出信息达到一致,因此以后会使用了大量的UNIX命令来完成演示操作。在Windows平台上,有多种UNIX命令的模拟环境。对于Windows 10之前的系统,可以使用的模拟环境有
Cygwin
、
MinGW
、
MSys2
,Windows 10系统则加入了
Bash On Ubuntu On Windows
。它们在操作上差别不大,这里演示时使用的是
Cygwin
与
Bash On Ubuntu On Windows
,读者可以根据个人的喜欢选择它们四者之一。
首先到
Cygwin
的官方下载最新版本的安装程序,地址是:
https://www.
cygwin.com
。对于64位的Windows系统,下载地址目前为
https://www.
cygwin.com/setup-x86_64
.exe
。下载安装程序后双击运行安装,在确定
Cygwin
的安装目录后,不停的下一步,直到命令安装界面,如图所示:
输入需要安装的命令,例如
automake
,
Cygwin
会列出所有与这个名字相关的软件包,在结果的Bin栏上打勾,选择要安装的
automake
版本,如果需要安装其源码,可以在Src栏上打勾。确定好后,可以输入其他的软件名,搜索下一个需要安装的软件,例如本人经常使用到的
grep
、
openssl
、
tree
等命令。所有命令都选择勾选好后,点击Next进行安装,确认要安装的软件的版本正确无误后,再一次点击Next,
Cygwin
会联网下载所有选中的软件包,如图所示:
完装完成后,会在桌面上生成Cygwin64 Terminal的图标,双击运行就会进行Shell执行环境,在该环境下,可以执行与macOS、Linux上一样的Shell命令,例如,执行
uname -a
查看机器信息;执行
id
查看用户的ID信息;执行
ls
列举目录;执行
wc -l
统计输出行数等。效果如下所示:
android@DESKTOP-0E964KM ~
$ uname -a
CYGWIN_NT-10.0 DESKTOP-0E964KM 2.8.0(0.309/5/3) 2017-04-01 20:47 x86_64 Cygwin
android@DESKTOP-0E964KM ~