jni £¯ C for android ¼¼Êõ×ÜÀ¿
Android±àÒë»·¾³(1) - ±àÒëNative CµÄhelloworldÄ£¿é
Android±àÒë»·¾³±¾Éí±È½Ï¸´ÔÓ£¬ÇÒ²»ÏñÆÕͨµÄ±àÒë»·¾³£ºÖ»Óж¥²ãĿ¼Ï²ÅÓÐMakefileÎļþ£¬¶øÆäËûµÄÿ¸öcomponent¶¼Ê¹ÓÃͳһ±ê×¼µÄAndroid.mk. Android.mkÎļþ±¾ÉíÊDZȽϼòµ¥µÄ£¬²»¹ýËü²¢²»ÊÇÎÒÃÇÊìϤµÄMakefile£¬¶øÊǾ¹ýÁËAndroid×ÔÉí±àÒëϵͳµÄºÜ¶à´¦Àí£¬Òò´ËÒªÕæÕýÀíÇå³þÆäÖеÄÁªÏµ»¹±È½Ï¸´ÔÓ£¬²»¹ýÕâÖÖ·½Ê½µÄºÃ´¦ÔÚÓÚ£¬±àдһ¸öеÄAndroid.mkÀ´¸øAndroidÔö¼ÓÒ»¸öеÄComponent»á±È½Ï¼òµ¥¡£
±àÒëJava³ÌÐò¿ÉÒÔÖ±½Ó²ÉÓÃEclipseµÄ¼¯³É»·¾³À´Íê³É£¬ÕâÀï¾Í²»Öظ´ÁË¡£ÎÒÃÇÖ÷ÒªÕë¶ÔC/C++À´ËµÃ÷£¬ÏÂÃæÍ¨¹ýÒ»¸öСÀý×ÓÀ´ËµÃ÷£¬ÈçºÎÔÚAndroid ÖÐÔö¼ÓÒ»¸öC³ÌÐòµÄHello World£º
1. ÔÚ$(YOUR_ANDROID)/development Ŀ¼Ï´´½¨helloĿ¼£¬ÆäÖÐ$(YOUR_ANDROID)Ö¸AndroidÔ´´úÂëËùÔÚµÄĿ¼¡£
- # mkdir $(YOUR_ANDROID)/development/hello
2. ÔÚ$(YOUR_ANDROID)/development/hello/Ŀ¼±àдhello.cÎļþ£¬hello.cµÄÄÚÈݵ±È»¾ÍÊǾµäµÄHelloWorld³ÌÐò£º
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
3. ÔÚ$(YOUR_ANDROID)/development/hello/Ŀ¼±àдAndroid.mkÎļþ¡£ÕâÊÇAndroid MakefileµÄ±ê×¼ÃüÃû£¬²»Òª¸ü¸Ä¡£Android.mkÎļþµÄ¸ñʽºÍÄÚÈÝ¿ÉÒԲο¼ÆäËûÒÑÓеÄAndroid.mkÎļþµÄд·¨£¬Õë¶Ôhelloworld³ÌÐòµÄAndroid.mkÎļþÄÚÈÝÈçÏ£º
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
hello.c
LOCAL_MODULE := helloworld
include $(BUILD_EXECUTABLE)
×¢ÒâÉÏÃæLOCAL_SRC_FILESÓÃÀ´Ö¸¶¨Ô´Îļþ£»£¬LOCAL_MODULEÖ¸¶¨Òª±àÒëµÄÄ£¿éµÄÃû×Ö£¬ÏÂÒ»²½Öè±àÒëʱ¾ÍÒªÓõ½£»include $(BUILD_EXECUTABLE)±íʾҪ±àÒë³ÉÒ»¸ö¿ÉÖ´ÐÐÎļþ£¬Èç¹ûÏë±àÒë³É¶¯Ì¬¿âÔò¿ÉÓÃBUILD_SHARED_LIBRARY£¬ÕâЩ¿ÉÒÔÔÚ$(YOUR_ANDROID)/build/core/config.mk²éµ½¡£
4. »Øµ½AndroidÔ´´úÂë¶¥²ãĿ¼½øÐбàÒ룺
# cd $(YOUR_ANDROID) && make helloworld
×¢Òâmake helloworldÖеÄÄ¿±êÃûhelloworld¾ÍÊÇÉÏÃæAndroid.mkÎļþÖÐÓÉLOCAL_MODULEÖ¸¶¨µÄÄ£¿éÃû¡£±àÒë½á¹ûÈçÏ£º
target thumb C: helloworld <= development/hello/hello.c
target Executable: helloworld (out/target/product/generic/obj/EXECUTABLES/helloworld_intermediates/LINKED
Ïà¹ØÎĵµ£º
CÔËÐÐʱ¿âº¯ÊýºÍAPIº¯ÊýÓÐÊ²Ã´Çø±ðºÍÁªÏµÄØ£¿
CÔËÐÐʱ¿âº¯ÊýÊÇÖ¸CÓïÑÔ±¾Ê¡Ö§³ÖµÄһЩ»ù±¾º¯Êý£¬Í¨³£ÊÇ»ã±àÖ±½ÓʵÏÖµÄ
¡£
APIº¯ÊýÊDzÙ×÷ϵͳÌṩ¸øÓû§·½±ãÉè¼ÆÓ¦ÓóÌÐòµÄº¯Êý£¬ÊµÏÖÒ»Ð©ÌØ¶¨µÄ¹¦ÄÜ£¬APIº¯ÊýÒ²ÊÇCÓïÑԵĺ¯Êý
ʵÏֵġ£
ËûÃÇÖ®¼äÇø±ðÊÇ£ºAPIº¯ÊýÊÇÕë¶Ô²Ù×÷ϵͳµÄ£¬CÓïÑÔÔËÐÐʱº¯ÊýÔòÊ ......
1¡¢C/C++³ÌÐòÔ±Çë×¢Ò⣬²»ÄÜÔÚcaseÓï¾ä²»Îª¿Õʱ“ÏòÏÂÖ´ÐД¡£
2¡¢ÖµÀàÐͺÍÒýÓÃÀàÐÍÖ®¼äµÄÇø±ð£ºC#µÄ»ù±¾ÀàÐÍ£¨int£¬charµÈ£©¶¼ÊÇÖµÀàÐÍ£¬ÊÇÔÚÕ»Öд´½¨µÄ¡£¶ø¶ÔÏóÊÇÒýÓÃÀàÐÍ£¬´´½¨ÓÚ¶ÑÖУ¬ÐèҪʹÓùؼü×Önew¡£
3¡¢ÔÚC#ÖÐͨ¹ýʵÀý·ÃÎʾ²Ì¬·½·¨»ò³ÉÔ±±äÁ¿ÊDz»ºÏ·¨µÄ£¬»áÉú³É±àÒëÆ÷´íÎó¡£µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ýÉùÃ÷ËûÃÇ ......
ÕâÆªÎÄÕºܳ¤£¬×ªÔØÏÂÀ´¹©×Ô¼ºÂýÂýѧϰ¡£
±à³ÌÐÞÑø £¨×÷Õߣº³Â𩣩
————
ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡ ......
À´×Ô£ºhttp://zhangjunhd.blog.51cto.com/113473/100299
1.¶Áд×Ö·ûº¯Êýputc()Óëgetc()
ÕâÁ½¸öº¯ÊýÀàËÆÓÚputchar()Óëgetchar()º¯Êý¡£¼ÙÉèfpÊÇÒ»¸öFILEÖ¸Õ룬chÊÇÒ»¸ö×Ö·û±äÁ¿£¬
ch = getc(fp);// ch = getchar();
putc(ch,fp);// putchar(ch);
½«ÎļþÄÚÈÝ(°´×Ö·û)Êä³öµ½±ê×¼Êä³öµÄCʵÏÖ£º
#include <stdio.h ......
ÓÉÓÚ³ÌÐòÔËÐÐʱռÓõÄÄÚ´æ¹ý´ó£¬ËùÒÔÏë°ì·¨¸ø³ÌÐòÊÝÉí¡£
ÔÚµ÷ÊÔÖз¢ÏֽṹÌåÕ¼ÓõÄsize¾¹È»ºÍÔ¤ÏëµÄ²»Ò»Ñù£¬ÔÀ´……
¿´¿´ÏÂÃæ½²µÄ°É£¬¿Ï¶¨»á²»Í÷´Ë¿´Å¶£¡
1,±ÈÈç:
struct{
short a1;
short a2;
short a3;
}A;
struct{
......