androidstudio编译顺序
⑴ 如何利用android studio 编译c code
学习 android 逆向分析过程中,需要学习 Arm 指令,不可避免要编写一些 test code 并分析其指令,这是这篇文档的背景。
在目前 android 提供的开发环境里,如果要编写 c / cpp code, 一般是通过 ndk 开发套件,基本方法就是在
windows 或 linux 发行版上下载 ndk 环境,然后编写 c / cpp code 然后编写 Android.mk 文件,最后用
ndk-build 等工具进行编译,编译出来的可执行文件再通过 adb push 的方式提交到 devices 或 emulator
运行,如果要分析其指令,需要下载 android 提供的 prebuilts binutils 工具集(如android 源码的
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/arm-linux-androideabi/bin/
目录),如果你在linux上用file命令查看一下这些工具,会发现 :
root@ubuntu:bin# file objmp
objmp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
它们是x86架构的,这样,你要分析devices或emulator里的elf文件,需要adb pull 下来,放在本地的linux环境或者windows里,用上述prebuilt工具分析。
稍微思考一下就会发现上述 ndk
的方式,对我们的需求来说有点太复杂了,我们真正希望的是像在标准linux发行版上那样,可以用vi/vim等编辑工具写 c/cpp
code,然后用 gcc /g++ 等编译工具编译,然后能直接运行或者用gdb调试,
或者用readelf/objmp等命令查看elf结果和汇编码。问题变成了:如何在android上实现这一切?
下面的方式是经过本人收集和实际测试证明可行的,我的环境是:
目标机:小米2手机, android4.4.4, miui 6.3.5
本地机: win7
效果:在本地机adb目标机的shell, 然后用vi写 c/cpp code, 直接在shell上用gcc编译,用objmp分析指令
实现步骤如下:
1. 首先安装 busybox apk . 这个app提供了后续需要的 busy vi, busy tar 等工具
2. 下载 adb putty ,http://yunpan.cn/cZ5x9UrDFUDdK (提取码:e70e)
这个工具用来做终端,这里为什么不用win7自带的cmd或者其他增强版如 powerCmd 呢? 因为用 windows 的 cmd 终端,adb shell 连接上手机后,执行 busybox vi 等命令,会出现乱码,参考http://www.hu.com/question/20624475, 用这款 adb putty 终端则可以正常使用。
3. 下载 gcc arm,http://yunpan.cn/cZ5YVZzbvJqq4 (提取码:80b8)
⑵ Android studio使用NDK编译问题
NDK编译步骤:
1.选择 ndk 自带的例子 hello-jni ,我的位于E:\android-ndk-r5\samples\hello-jni( 根据具体的安装位置而定 ) 。
2.运行 cygwin ,输入命令 cd /cygdrive/e/android-ndk-r5/samples/hello-jni ,进入到 E:\android-ndk-r5\samples\hello-jni 目录。
3.输入 $NDK/ndk-build ,执行成功后,它会自动生成一个 libs 目录,把编译生成的 .so 文件放在里面。 ($NDK是调用我们之前配置好的环境变量, ndk-build 是调用 ndk 的编译程序 )
4.此时去 hello-jni 的 libs 目录下看有没有生成的 .so 文件,如果有,ndk 就运行正常啦。
⑶ android studio怎么编译
安装Android Studio的准备工作 1.下载好JDK 去官网上找一个下载下来 2.安装JDK.并配置环境变量.安装过程可以一直下一步,无脑操作 3.下载Android Studio的安装包 去官网上找一个,下载下来 (jdk的环境变量一定要配置) 准备工作完成之后,就可以开始我们的安装了 1.安装Android studio也是无脑操作,一直点下一步。直到安装结束 2.安装好之后,我们要新建我们的项目。重点从这里开始 点击 New Project会出现.我们设置好名称,也可以无脑操作,一直点击next,直至结束,不过这个过程需要我们耐心的等待。(时间有点漫长)。 然后我们就会进入我们的开发界面。点击图片中红圈的图标(SDK manager)会出现下图 这个步骤是安装Android的sdk,推荐,Android1.6~Android4.4.2全部安装。(这个耗费时间挺长的,请在网速良好且大量闲暇时光下安装,安装过程中可以看部电影) 安装完之后,就开始配置我们的avd(Android Virtual Device),也就是Android的虚拟环境。点击,图片中红圈的图标 点击New(Test是我配置好的) 随便设置AVD name,建议如图设置 设置完成之后,就可以点击下图的三角号编译我们的程序了。
⑷ android studio怎么编译apk文件
Android Studio编译出来的APK无法安装如何解决?随着Android8.0的发布,国内虽然没上8.0但是7.0、7.1已经比较普遍了。Android Studio也做了不少更新。
但是有不少人发现,我更新了Android Studio,发现我的手机无法调试了?根本无法直接安装调试,就算先生成APK,在安装也总是说安装失败,或者解析包错误我该怎么办?
在这里我也不知道具体原因,反正我是遇到过几次。有的情况,我的猜测是因为了更新了build tool不知道它加了什么限制条件。因为在低版本没出现问题,更新了它之后就出现了!
第一种情况:直接无法安装,并出现:Failed to finalize session : INSTALL_FAILED_INTERNAL_ERROR
这种情况比较好解决,本身AS也有提示:关闭选项 File--> settings-> Istant Run
第二种情况:虚拟机可以安装调试,发送到真机上无法安装。甚至是提示安装包解析失败?
我经常遇到就是这个,有时候让我们怀疑是不是在传输过程安装包损坏了,还是手机出问题了。其实都不是,我还在真感觉是build tool版本导致的。
因为有一个解决方案是这样的:
请修改 project 的biuld.gradle
classpath 'com.android.tools.build:gradle:2.3.3'
改为
classpath 'com.android.tools.build:gradle:2.2.0'以下
还有另一个解决方案:
我们平时习惯都是生成debug包进行安装,造成这个原因就是因为他是debug包!我自己测试出来的,估摸是Android加了什么条件,限制了debug包的安装。生成release包就没任何问题,亲测。
第三种情况,APK在大多数设备上能运行,但是有的设备却不能安装?
亲~请查看你配置文件中的最低支持的Android版本,你设置最低5.0安装在4.4的机器当然不行了!
这就是目前我遇到的三种情况,如果大家还有其他情况以及其他解决方案不妨分享出来~
⑸ android studio 如何回编译一个APP
android studio中不能编译反编译出来的文件,android studio只能编译源代码。
1.反编译Apk得到java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。
具体步骤:
首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar
2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
还是下载工具,这次用到的是apktool
具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar 文件到解压后的\apktool-install-windows-r04-brut1文件夹里)
2.特别注意:你要反编译的文件一定要放在C盘的根目录里
⑹ 如何优化 Android Studio 启动,编译和运行速度
优化 Android Studio 启动、编译和运行速度?
【阿里云】携手码云为社区用户送福利,全网专享,详情请点击>>> »
作为一名 Android 程序员,选择一个好的 IDE 工具可以使开发变得非常高效,很多程序员喜欢使用 Google 的 Android Studio来进行开发,但使用起来有时会出现卡顿等问题。本文介绍了几种优化 Android Studio 启动、编译、运行速度的方法。
首先解决一个 Android Studio 启动报错的问题
1、进入刚安装的 Android Studio 目录下的bin目录。找到 idea.properties 文件,用文本编辑器打开。
2、在 idea.properties 文件末尾添加一行:disable.android.first.run=true,然后保存文件。
3、关闭 Android Studio 后重新启动,便可进入界面。
优化 Android Studio 启动速度
1、开启 gradle 单独的守护进程
当 Android Studio 遇到错误的时候,往往会导致 Android Studio 挂掉,为了防止推出程序,则另外开启一个线程来守护 Android Studio 的进程,具体操作。 在 C:\Users\.gradle 这个目录下,创建 gradle.properties 配置文件,复制以下配置进行优化。
# Project-wide Gradle settings.
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
-XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
这些配置文件主要就是增大 gradle 运行的 java 虚拟机的大小,让 gradle 在编译的时候使用独立进程,让 gradle 可以很好的运行。
2、扩大内存
64位:\studio64.exe.vmoptions or studio.exe.vmoptions
32位:\studio.exe.vmoptions or studio.exe.vmoptions
编辑这个文件,在最开始的两行设置内存大小,类似于eclipse.ini中的配置。配置如下:
-Xms256m
-Xmx1024m