要得心应手地进行Android应用开发需要我们对Android工程的编译和打包有一个比较深入的理解,例如知道它的每一步都做了什么,需要什么环境和工具,输入和输出是什么,等等。
在前文《命令行下Android应用开发》中我们已经知道如何创建一个Android工程和编译运行可调试版本的应用程序。本文将介绍Android工程的整个编译过程。
首先来分析Ant如何将Android工程编译打包成A...
分类:
移动开发 时间:
2014-08-19 10:59:34
阅读次数:
221
typedef 和#define 都常用来定义一个标识符及关键字的别名,但他们之间有关键的区别。
typedef 是语言编译过程的一部分;
#define是宏定义语句,它本身并不在编译过程中进行,而是在这之前的预处理过程就已经完成了。
要理解两者的关键区别,可以这么来考虑 :
把typedef 看成是一种彻底的"封装"类型,相当于产生了一个新的变量类型(这点与struct ...
分类:
数据库 时间:
2014-08-19 09:24:33
阅读次数:
251
this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象。但是在JS中,由于 javascript的动态性(解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性让我们有时会给乱了方向,如果掌握了它的工作原理,那么它给我们带来了编程...
分类:
其他好文 时间:
2014-08-19 00:44:53
阅读次数:
362
编译过程大体包括预处理,编译,汇编,链接四大步,其中预处理主要是宏定义替换,文件包含,条件编译。用#ifndef机构可以防止以下情况:即一个文件A包含了一个头文件C,同时另一个文件B也包含了头文件C,而且文件A包含了头文件B,若用#ifndef结构可以避免在编译的时候报错,但是若头文件里有定义(包括...
分类:
其他好文 时间:
2014-08-18 20:17:52
阅读次数:
144
调试的问题出现这个问题还蛮奇怪的,a.h需包含statistic.h, main.c需包含a.h和statistic.h,导致了statistic.h重复包含,hsdm_queue_ctr重复定义。关于重复包含和重复定义的问题,可根据下面的分析得到认识。为什么用了宏名字定义检测头文件的重复包含可还是...
分类:
其他好文 时间:
2014-08-18 20:08:12
阅读次数:
184
编译过程如下: 用到的安装包下面的过程最好按照顺序进行!有一些库也是依赖关系。export PREFIX=/usr/export HOSTTPL=arm-none-linux-gnueabiexport INSTALLDIR=/home/linux/linphone/installtslib$ su...
分类:
其他好文 时间:
2014-08-18 12:04:34
阅读次数:
401
利用.gitignore过滤文件,如编译过程中的中间文件,等等,这些文件不需要被追踪管理。现象:在.gitignore添加file1文件,以过滤该文件,但是通过git status查看仍显示file1文件的状态。原因:在git库中已存在了这个文件,之前push提交过该文件。.gitignore文件只...
分类:
其他好文 时间:
2014-08-17 16:55:12
阅读次数:
183
//test.c:#include int main(void){ printf("hello world!"); return 0;}======================================一、1. 编译过程:预处理(processing)-》编译(compilation).....
分类:
数据库 时间:
2014-08-16 02:15:29
阅读次数:
288
由于win7 64位系统的matlab2010a没有内置C编译器,因此在进行程序编译过程中找不到编译器,需自己安装。http://www.mathworks.cn/support/compilers/R2010a/win64.html里面有关于matlab2010a 匹配的编译器。VC++200.....
一.输出log如何获得Linux下make的log? 如何保存控制台对话? 如何将编译过程的信息保存成日志? 编译的过程可能会出错,导致编译过程无法继续进行。详细分析出错信息,有助于解决源码中的语法错误。 那么如何保存配置编译过程的信息?这些信息量很大,都可能超出Shell向上翻滚查看的范围。最好....
分类:
其他好文 时间:
2014-08-15 12:17:38
阅读次数:
1079