Android的JNI開發

來源:互聯網
上載者:User

標籤:android   blog   java   使用   os   io   檔案   資料   

變數的定義int i;typedef int x;//定義一個int x資料類型x a=10;printf("size=%d",sizeof(i));//擷取int類型長度(4個位元組)system("pause");//不讓表單立即消失迴圈在c語言中,迴圈的變數必須在外面生命int ifor(i=0;i<10;i++){printf("i=%d",i);}指標變數int i=10;int* p;//聲明一個指標變數p=&i;//取出i的地址值,賦值給指標變數*p取出指標指向的值多級指標int i=10;int* p;p=&i;int** s;s=&p;int*** x;x=&s;//取出i的值,這裡有一個規律,前面有多少個*,取得時候就在簽名加幾個*printf("i=%d",***x);數組數組的定義int arr[3]或者int arr[]={1,2,3};遍曆數組://1.普通方式 int i;for(i=0;i<3;i++){     printf("arr[%d]=%d\n",i,arr[i]);           }//2.通過指標方式擷取 <*(arr+j)>int j;for(j=0;j<3;j++){   printf("arr[%d]=%d\n",j,*(arr+j));} 結構的定義與使用//1.定義結構體 struct person{int age;}//2.結構體的使用struct person p;p.age=10;printf("p.age=%d",p.age);結構體指標變數的定義與使用struct person{int age;} *p;//聲明一個結構體指標變數 //動態申請記憶體空間p=(struct person*)malloc(sizof(struct person));p->age=18;printf("p->age=%d",p->age);函數的定義與使用#include<stdio.h>int sum(int x,int y);//聲明一個函數 main(){       int x=10;       int y=10;       int z=sum(x,y);//調用函數進行求和運算        printf("z=%d",z);       system("pause");}//真實的函數 int sum(int x,int y){    return x+y;}函數的還可以直接定義int sum(int x,int y){    return x+y;}main(){       int x=10;       int y=10;       int z=sum(x,y);//調用函數進行求和運算        printf("z=%d",z);       system("pause");}兩個變數的交換change2(int* x,int* y){       int z=*x;       *x=*y;       *y=z;} main(){       int x=1;       int y=2;       change2(&x,&y);       printf("x=%d\n",x);       printf("y=%d\n",y);       system("pause"); } 指標函數#include<stdio.h>int sum(int x,int y){    return x+y;} main(){       int (*s)(int,int); //定義一個函數指標        s=sum; //給函數指標賦值        int x=s(2,3);       printf("x=%d",x);       system("paud");}在結構體中使用函數指標1.定義一個函數2.頂一個結構體,並在結構體中 定義一個函數指標3.在main函數中,定義一個結構體指標4.通過結構體指標給函數指標賦值,以及成員賦值#include<stdio.h>//1.定義一個函數int sum(int x,int y){    return x+y;} //2.頂一個結構體,並在結構體中 定義一個函數指標struct stu{       int age;       //函數指標        int (*score)(int,int);} main(){       //3.定義一個結構體指標       struct stu* s=(struct stu*)malloc(sizeof(struct stu*));           //4.給函數指標賦值       s->score=sum;      //給結構體中成員屬性賦值       s->age=s->score(1,2);            printf("age=%d",s->age);      system("pause");        }聯合的定義與使用//定義一個聯合 union un{      int age;      char x;} main(){       union un  abc;//定義一個聯合變數        abc.age=10;        printf("age=%d\n",abc.age);       printf("x=%d\n",abc.x);       system("pause");}枚舉的使用//定義一個枚舉,枚舉中的成員都是一個整型常量值enum mode{     a=100,//如果不賦值,預設從0開始,如果賦值則後面的一次加1     b} main(){       //定義一個枚舉變數       enum mode m=a;       printf("m=%d",m);       system("pause"); }類型說明 typedef int xx ;xx a=100;define指令,定義全域內容;在c中1代表真,0代表假 #define TRUE 1;#define FALSE 0;if(TRUE){....}else{....}定義一個全域方法#define Max(x,y) (x>y)?x:y動態數組int* arr=(int*)malloc(4*10);檔案讀取int main(){   FILE* fp;   char ch;   if((fp=fopen("mm.txt","rt"))== NULL){   printf("檔案不存在or讀取失敗\n");   }else{       //怎麼讀取檔案的內容?ch=fgetc(fp);//從流裡面擷取字元 while (ch!=EOF){putchar(ch);//在stdout上輸出字元 ch=fgetc(fp);}fclose(fp);//關閉一個流   }   system("pause");//暫停   讓cmd視窗不消失 }jni開發流程:1 建立一個android工程2 add native support  產生jni檔案夾   Android.mk檔案  +  xx.cpp檔案3 修改檔案  Android.mk  .cpp 改為.c       xx.cpp檔案 改為.c----------------------------------------------------------------------------該工程可以進行ndk開發4 在MainActivity.java裡面添加一個native方法   public native String  getString();5 產生標頭檔  cmd     cd /d 工程的src目錄  javah  com.itcast.jni1.MainActivity   在src產生一個 com_itcast_jni1_MainActivity.h----------------------------------------------------------------------------產生了標頭檔6 把com_itcast_jni1_MainActivity.h 複製到jni下面,拷貝裡面的方法到.c檔案7 完成.c檔案內容的編寫----------------------------------------------------------------------------c代碼編寫完成8 編譯c代碼    右鍵工程 --》 Build configuration --> buill all  產生.so檔案9 載入動態連結程式庫檔案  static{     System.loadLibrary("hello");   }10 調用native方法

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.