如何编译android 可执行的二进制文件

作者&投稿:羿波 (若有异议请与网页底部的电邮联系)
源程序文件是怎样变成可执行的二进制文件的~

通过下面这条命令,main.c和swap.c就产生了一个可执行二进制文件swap》gccmian.cswap.c-oswap那么这条命令是么样把源程序变成可执行程序的呢?步骤如下:1、驱动程序首先调用C预处理器(CPP)把源文件翻译成一个ASCII中间文件mian.i,预处理器会把#include所包含的内容都插入到声明的位置,并且做宏替换,把main.c文件的第3行的SIZE替换成2(注意这里只是做简单的文本替换)。2、接下来驱动程序的C编译器将main.i翻译成汇编语言程序main.s3、然后驱动程序的汇编器将汇编语言程序main.s翻译成可重定位的二进制文件main.o4、最后运行链接器将main.o与swap.o以及一些必要的系统目标文件(比如你将调用的printf函数就是printf.o)连接起来变成一个可执行的二进制文件。

是这样的
1.进入你的android系统源码的build/target/board/generic目录下
2.把你的abc拷贝到 这个目录下
3.编辑这个目录下的vi AndroidBoard.mk这个文件
4.添加 PRODUCT_COPY_FILES += $(LOCAL_PATH)/abc:system/bin/abc

这样在make源码的时候,就可以自动进行这次拷贝了

  Android由于其代码是放在dalvik虚拟机上的托管代码,所以能够很容易的将其反编译为我们可以识别的代码。   之前我写过一篇文章反编译Android的apk包到smali文件 然后再重新编译签名后打包实现篡改apk的功能。   最近又有一种新的方法来实现直接从Android apk包里的classes.dex文件,把dex码反编译到java的.class二进制码,然后从.class二进制码反编译到java源码想必就不用我来多说了吧。   首先我们需要的工具是dex2jar和jd-gui   其中第一个工具dex2jar是用来把classex.dex文件也就是dex二进制码转化为java的标准.class二进制码,然后jd-gui是把标准的.class二进制码再反编译为java源码。   首先从apk包里面提取出classes.dex   放到dex2jar目录下   然后在命令行下执行   dex2jar.bat classes.dex   这时执行成功后会生成一个classes.dex.dex2jar.jar文件   这个文件再用jd-gui打开,如下图   几乎跟我自己写的这个程序的源码一样   提供这个反编译方法主要用于大家学习与研究,有问题可以与我邮件讨论。   希望大家不要用这个方法从事恶意的活动,毕竟,别人辛辛苦苦写程序也不容易,用这个方法可以大致的学习到别人写的程序的逻辑,架构,希望对大家有所帮助。   Android 逆向apk程序的心得   本文主要介绍如何逆向一个Android的APK应用程序,本文提供的方法仅供研究学习之用。   本文需要用到的工具有   jdk 这个用于搭建java运行环境   AXMLPrinter2.jar 这个用于逆向.xml文件   baksmali.jar 这个用于逆向classex.dex文件   由于Android的.apk文件实际上就是一个zip文件 可以直接用winrar打开


如何创建第一个android程序
创建Android程序需要先安装android的开发环境。分为五个步骤来完成Android开发环境的部署。第一步:安装JDK。要下载Oracle公司的JDK可以百度“JDK”进入Oracle公司的JDK下载页面,选择自己电脑系统的对应版本即可。第二步:配置Windows上JDK的变量环境 。JAVA_HOME 先设置这个系统变量名称,变量值为JDK在电脑上...

如何创建第一个android程序
Package Name :程序包的命名空间,与java或c#类似。你的包名应该定义一个唯一的名字,保证与在androi系统中安装的所有其他包名称不一样。因此,强烈建议以组织或公司的域名或发布者名字开头。在这个项目中,我们使用"com.example.myfirstapp." ,但是,你不能发布以"com.example”为命名空间的应用到Google...

如何创建第一个android程序
Package Name :程序包的命名空间,与java或c#类似。你的包名应该定义一个唯一的名字,保证与在androi系统中安装的所有其他包名称不一样。因此,强烈建议以组织或公司的域名或发布者名字开头。在这个项目中,我们使用"com.example.myfirstapp." ,但是,你不能发布以"com.example”为命名空间的应用到Google...

如何创建第一个android程序
Package Name :程序包的命名空间,与java或c#类似。你的包名应该定义一个唯一的名字,保证与在androi系统中安装的所有其他包名称不一样。因此,强烈建议以组织或公司的域名或发布者名字开头。在这个项目中,我们使用"com.example.myfirstapp." ,但是,你不能发布以"com.example”为命名空间的应用到Google...

如何创建第一个android程序
Package Name :程序包的命名空间,与java或c#类似。你的包名应该定义一个唯一的名字,保证与在androi系统中安装的所有其他包名称不一样。因此,强烈建议以组织或公司的域名或发布者名字开头。在这个项目中,我们使用"com.example.myfirstapp." ,但是,你不能发布以"com.example”为命名空间的应用到Google...

如何创建第一个android程序
Package Name :程序包的命名空间,与java或c#类似。你的包名应该定义一个唯一的名字,保证与在androi系统中安装的所有其他包名称不一样。因此,强烈建议以组织或公司的域名或发布者名字开头。在这个项目中,我们使用"com.example.myfirstapp." ,但是,你不能发布以"com.example”为命名空间的应用到Google...

在Androidstudio中为什么一旦用下面的一句话 系统就炸呢
1,过程感慨(想直接看教程,请跳过此部分) 在写具体内容之前,我先说下我搞这个东西的过程,由于导师之前说过要搞个图像匹配的androi APP,具体就是匹配前后两张图片的相似度,类似 安卓5\/project\/opencvlibrary\/opencv-android\/3%2F&ts=1436167636&use_mirror=nchc 编译\/asmcvc\/article\/details\/9311573,我上面说了,不...

泰州市13591137004: 如何编译android 可执行的二进制文件 -
都古氯化: Android由于其代码是放在dalvik虚拟机上的托管代码,所以能够很容易的将其反编译为我们可以识别的代码.之前我写过一篇文章反编译Android的apk包到smali文件 然后再重新编译签名后打包实现篡改apk的功能.最近又有一种新的方法来...

泰州市13591137004: 如何编写Android的可执行程序 -
都古氯化: (1) 如果你开发Android上层APP,使用Android NDK,将下面C语言开发的lib通过JNI接口给上层APP使用. (2) Android底层本来就是Linux,如果是搞底层的东西,这和在Linux下开发C语言程序没什么区别.

泰州市13591137004: 怎么将c代码编译成android可执行程序 -
都古氯化: (1) 如果用Android NDK,将下面C语言开发的lib通过JNI接口给上层APP使用.(2) Android底层本来就是Linux,如果是搞底层的东西,这和在Linux下开发C语言程序没什么区别.

泰州市13591137004: 如何编译能在android上运行的C程序 -
都古氯化: 本人使用mini6410开发了一个sqlite数据库的程序,在mini6410的linux系统下已经能够成功运行了.因为Android使用的也是linux内核,所以我想当然的认为按照同样的方法将程序移植到mini6410的android系统中也可以成功运行,但是当我运行...

泰州市13591137004: 如何单独编译Android源代码中的模块 -
都古氯化: Android源码目录下的build/envsetup.sh文件,描述编译的命令- m: Makes from the top of the tree.- mm: Builds all of the modules in the current directory.- mmm: Builds all of the modules in the supplied directories.要想使用这些命令,首先需要在...

泰州市13591137004: 如何单独编译Android源代码中的模块 -
都古氯化: 1.make 模块名称 需要查看Android.mk文件的LOCAL_PACKAGE_NAME变量. 2.mmm命令 用于在源码根目录编译指定模块,参数为模块的相对路径.只能在第一次编译后使用.比如要编译Phone部分源码,需要在终端中执行以下命令: $...

泰州市13591137004: 如何在eclipse下编译android代码 -
都古氯化: eclipse下编译android代码的流程如下: 1.点击android工程,点击run 2.弹出窗口,选择运行设备,如下图,点击run就可以编译,运行

泰州市13591137004: 如何编译运行android代码 -
都古氯化: 首先你要有android运行环境,然后右击run as --》android application 搞定

泰州市13591137004: Linux命令行怎么编译Android代码 -
都古氯化: 这个问题已经找到解决方案了,方法如下:1.在Linux设置文件共享,将项目 共享,最好有个密码什么的.2.在Linux上配置ssh server,用于 和编译安卓源码3.Linux mac 通过 连接,原因是有线传输比无线的快很多,ping只是0.3左右ms,不影响使用.然后就可以mac编写代码,然后ssh 编译什么的,很方便,

泰州市13591137004: 怎么单独编译安卓系统源码指定模块 -
都古氯化: 一. 首先在Android源代码目录下的build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用的工具:USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh注意,这是一个source命令,执行之后,就会有...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网