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/studio/index.html。如图所示,点击下载链接即可。 Android程序分析环境搭建-Windows篇

下载并解压其压缩包,发现只包含一个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"后回车,此时会开始下载模拟器。 执行以下命令可以下载平台相关的工具,里面包含了adbfastboot等命令:

 

> 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环境变量中。其中包含adbfastboot的platform-tools目录;包含aaptapksignerdexdumpzipalign的build-tools/25.0.3目录;包含androidmonitoremulator的tools目录等。

完成以上操作后,在命令提示符下输入“emulator -version”与“adb version”命令查看是否能成功运行。执行结果如下所示:

 

> emulator -version Android emulator version 26.0.3.0 (build_id 3965150) Copyright (C) 2006-2015 The Android Open Source Project and many others. 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/ndk/downloads/index.html。如图所示,点击链接中的Windows版本,下载最新的Android NDK压缩包即可。

Android程序分析环境搭建-Windows篇

解压下载的压缩包后,将NDK的根目录添加到系统的NDK_HOME环境变量,并将其添加到系统的PATH环境变量。在命令提示符下执行ndk-build -v,可以正常显示如下输出信息,说明配置完成了。

 

> ndk-build -v GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. 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/studio/index.html 下载最新的Android Studio。Windows平台分为包含了Android SDK的exe安装版本,与不包含Android SDK的exe安装版本及zip压缩包版本。如图所示:

Android程序分析环境搭建-Windows篇

不包含Android SDK的版本,会在第一次运行时,联网下载最新版本的SDK及构建工具。包含Android SDK的版本,则自带了最新版本的SDK,按照向导不停的下一步即可安装完成。

安装完成后启动Android Studio,点击主界面上的Configure->SDK Manager,会弹出SDK管理界面。在这里可以下载安装需要的软件包与构建工具。如图所示,Cmake与LLDB可以直接在这里勾选安装,非常方便。

Android程序分析环境搭建-Windows篇

使用Android Studio的过程中,不需要一次性下载所有版本的SDK与构建工具,在编译第三方项目或构建新项目时,Android Studio会根据实际情况,提示用户下载相应版本的SDK。用户体验方面比之前基于Eclipse的ADT开发工具要优秀得多。

创建Android模拟器

在创建Android模拟器前,请在Android Studio中确认本机已经安装模拟器必须的镜像文件。如图所示:

Android程序分析环境搭建-Windows篇

使用Android Studio创建Android模拟器,需要先打开一个Android工程。在打开的工程界面上,点击菜单Tools->Android->AVD Manager,会弹出Android模拟器创建对话框,如图所示:

Android程序分析环境搭建-Windows篇

点击Create Virtual Device...按钮,弹出虚拟设备创建窗口,选择设备的类型,例如Nexus 6p,点击Next,选择创建的系统版本。支持的系统版本会在这里全部列出来,默认情况下会选择本机安装的最新系统版本镜像,对于本机没有安装的系统版本,会在系统版本名称的旁边显示一个Download按钮,点击该按钮,可以下载相应的虚拟设备镜像。如图所示,选择Nougat后点击Next,确认设备类型与版本号无误后,点击Finish即可完成创建。

Android程序分析环境搭建-Windows篇

在返回的AVD Manager管理界面,选择创建好的模拟器,点击Action栏的绿色启动按钮,或者在选择的模拟器上双击,就会启动模拟器。

使用时间较长的模拟器,可以在AVD Manager管理界面中选中它,然后右键选择Wipe Data清空数据,将模拟器内容重置,或者选择Delete删除后重新创建。

CygWin

为了保证在内容讲解的过程中,工具的操作与输出信息达到一致,因此以后会使用了大量的UNIX命令来完成演示操作。在Windows平台上,有多种UNIX命令的模拟环境。对于Windows 10之前的系统,可以使用的模拟环境有CygwinMinGWMSys2,Windows 10系统则加入了Bash On Ubuntu On Windows。它们在操作上差别不大,这里演示时使用的是CygwinBash On Ubuntu On Windows,读者可以根据个人的喜欢选择它们四者之一。

首先到Cygwin的官方下载最新版本的安装程序,地址是:https://www.cygwin.com。对于64位的Windows系统,下载地址目前为https://www.cygwin.com/setup-x86_64.exe。下载安装程序后双击运行安装,在确定Cygwin的安装目录后,不停的下一步,直到命令安装界面,如图所示:

Android程序分析环境搭建-Windows篇

输入需要安装的命令,例如automakeCygwin会列出所有与这个名字相关的软件包,在结果的Bin栏上打勾,选择要安装的automake版本,如果需要安装其源码,可以在Src栏上打勾。确定好后,可以输入其他的软件名,搜索下一个需要安装的软件,例如本人经常使用到的grepopenssltree等命令。所有命令都选择勾选好后,点击Next进行安装,确认要安装的软件的版本正确无误后,再一次点击Next,Cygwin会联网下载所有选中的软件包,如图所示:

Android程序分析环境搭建-Windows篇

完装完成后,会在桌面上生成Cygwin64 Terminal的图标,双击运行就会进行Shell执行环境,在该环境下,可以执行与macOS、Linux上一样的Shell命令,例如,执行uname -a查看机器信息;执行id查看用户的ID信息;执行ls列举目录;执行wc -l统计输出行数等。效果如下所示:

 

[email protected] ~ $ uname -a CYGWIN_NT-10.0 DESKTOP-0E964KM 2.8.0(0.309/5/3) 2017-04-01 20:47 x86_64 Cygwin [email protected] ~ $ id uid=197609(android) gid=197609(android) groups=197609(android),401408(Medium Mandatory Level),197610(Ssh Users),559(Performance Log Users),545(Users),4(INTERACTIVE),66049(CONSOLE LOGON),11(Authenticated Users),15(This Organization),68564([email protected]),113(Local account),66048(LOCAL),262180(Cloud Account Authentication) [email protected] ~ $ ls /cygdrive/c | wc -l 45

Bash on Ubuntu On Windows

对于Windows 10系统,可以使用它全新的名为Bash On Ubuntu On Windows的Shell模拟环境。该环境随Windows 10最新的Linux子系统一起提供。具体的安装步骤如下:

  1. 升级到最新的Windows 10系统,以便系统能够支持开启"开发者模式"。
  2. 打开你的Windows 10的设置,在"更新和安全"选项中选择"开发者",然后选择"开发者模式"。
  3. 在Windows 更新和安全选项中,选择"Windows 更新",在"更新设置"中选择高级选项,勾选"内部预览版本"选项。
  4. 打开"控制面板"->"程序",选择"打开或者关闭Windows特性",找到Windows Subsystem for Linux(beta)勾选并确定,系统会下载更新并提示重启机器。
  5. 重启完成后,打开命令提示符,输入bash命令并回车,会提示继续安装Bash On Windows,选择yes,系统会安装有关的系统文件,等待安装完成后,系统会切换到Shell模式。

安装完成后. 可以在Windows菜单中找到一个名为”Bash on Ubuntu on Windows”的Ubuntu系统图标,它就是Shell的启动入口。另外,在命令提示符下输入bash,也可以快速切换到Shell环境。

在”Bash on Ubuntu on Windows”的Shell环境中,可以执行与 Ubuntu系统上一样的sudo apt-get install命令来安装软件包,效果如图所示。 Android程序分析环境搭建-Windows篇

编译Android源码

Docker在Windows上运行的最低版本是Windows 7,需要借助Docker ToolboxVirtualBox虚拟机中的容器进行通信,效率上相对较低。Windows 10版本是原生支持Docker,因此,推荐读者使用Windows 10来编译Android系统源码。

首先到Docker官网https://www.docker.com 下载最新的Windows版本的Docker ToolBox,目前稳定版的地址为https://download.docker.com/win/stable/DockerToolbox.exe 。下载完成后,双击运行安装。

安装完成后,桌面上同样会有DockerKitematic等软件的图标。在Windows系统上使用它们来编译Android系统源码,与macOS上的操作是一样的,此处不再赘述。

小结

本篇主要介绍了在Windows平台上,如何搭建安卓的开发与分析环境,以及如何在Windows系统上编译安卓系统的源码。

更多精彩内容,欢迎关注微信公众号【feicong_sec】

Android程序分析环境搭建-Windows篇

相关文章:

  • 2021-08-17
  • 2022-12-23
  • 2021-11-25
  • 2021-12-13
  • 2022-12-23
  • 2021-05-17
  • 2021-06-16
猜你喜欢
  • 2021-09-01
  • 2021-09-17
  • 2021-05-27
  • 2022-01-23
  • 2021-04-12
相关资源
相似解决方案