01 2013 档案
摘要:序言:-------------此文档旨在描述Android.mk文件的语法,Android.mk文件为Android NDK(原生开发)描述了你C/C++源文件。为了明白下面的内容,你必须已经阅读了docs/OVERVIEW.TXT的内容,它解释了Android.mk文件扮演的角色和用途。概述:---------写一个Android.mk文件是为了向生成系统描述你的源代码。更明确的说:- 这个文件实际上是GNU Make文件的一小片段,它会被生成系统解析一次或多次。因此,你应该在Android.mk里尽量少地声明变量,而不要误以为在解析的过程中没有任何东西被定义。- 该文件的语法的明的人为了
阅读全文
摘要:编译动态库没有问题,但是如果把BUILD_SHARED_LIBRARY变为BUILD_STATIC_LIBRARY,没有任何报错,但是就是不生成libtde.a(需要生成的库)方法:在Android.mk中还有其他模块需要编译,而此模块依赖libtde.a库,那么就会生成libtde.a,否则便不生成,还有一种情况,如果Android.mk中没有其他模块依赖libtde.a而我们又需要libtde.a那么我们可以在Application.mk中添加APP_MODULES := libtde,即可。
阅读全文
摘要:关于这个话题网上流传的是一个相同的版本,就是那个第一项是头文件的区别,但后面列出的头文件只有#include没有(估计是原版的在不断转载的过程中有人不小心忘了把尖括号转义,让浏览器当html标记解析没了)的那个。现在整理了一下,以后也会不断补充内容。1)头文件windows下winsock.h或winsock2.hlinux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了)2)初始化windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragma comment(lib.
阅读全文
摘要:编译环境:cygwinlib库: libiconv-1.14.tar.gz步骤:1.下载相关的编译环境与相关库文件2.使用cygwin,进入到库文件的解压目录3../configure [--prefix=/usr/local] [--enable-static--disable-shared| --disable-static--disable-enable] (prefix指定最后库生成的位置,默认为/usr/local) (生成静态库,或才共享库)4.make (编译)5.make install 安装库文件到--prefix指定的目录, 如果没有自动生成include文件, 可以再..
阅读全文
摘要:经营你的iOS应用日志(一):开始编写日志组件对于那些做后端开发的工程师来说,看LOG解Bug应该是理所当然的事,但我接触到的移动应用开发的工程师里面,很多人并没有这个意识,查Bug时总是一遍一遍的试图重现,试图调试,特别是对一些不太容易重现的Bug经常焦头烂额。而且iOS的异常机制比较复杂,Objective-C的语言驾驭也需要一定的功力,做出来的应用有时候挺容易产生崩溃闪退。一遍一遍的用XCode取应用崩溃记录、解析符号,通常不胜其烦,有时还对着解析出来的调用栈发呆,因为程序当时的内部状态常常难以看明白,只能去猜测。好了,先从一个自制的日志组件开始吧。我们需要一个专门的后台线程去输出日志,
阅读全文
摘要:如何把jni中的的crash堆栈解析为cpp源代码位置,目前版本(r7/r7b)NDK提供了如下命令ndk-stack.exe -sym <path> [-dump <path>]其 中"sym"对应的path是编译出来的二进制symbol的文件夹路径,通常是$PROJECT_PATH/obj/local /<abi>,“dump”对应的是crash log的路径。crash log来自logcat输出,详细内容请参考NDK文档:android-ndk-r7\docs\NDK-STACK.html库工程的组织方式:大体上来说有Prebui
阅读全文