文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Android與Cross Compiler之關係

Android與Cross Compiler之關係

时间:2009-03-25  来源:gpephone

4:Android與Cross Compiler之關係 高煥堂談:Android與Cross Compiler之關係    ---- 在Ubuntu/Linux/X86 環境裡使用2007q3-51交叉編譯C程式,然後放入Android裡執行。   l            何謂   4:Android與Cross Compiler之關係

高煥堂談:Android與Cross Compiler之關係

   ---- 在Ubuntu/Linux/X86 環境裡使用2007q3-51交叉編譯C程式,然後放入Android裡執行。

 

l            何謂Cross compiler(交叉編譯器)?

Cross Compiler主要在資源較豐富的電腦上執行,而編譯出能在別的電腦上執行的目的碼(Object Code)。例如,當我們想寫個C程式,讓它能在Android手機裡跑。Android手機的ARM-CPU及記憶體容量都很小,我們無法在資源有限的Android/ARM裡進行編輯及編譯C程式。可行的方法是:在X86 PC環境裏編輯C程式,然後使用Cross Compiler去編譯出適合ARM-CPU裡執行的目的碼。這稱為Cross Compiler。

 

l            安裝ARM GNU/Linux 交叉編譯器

在Ubuntu裡安裝交叉編譯器的步驟是:

Step-1. 在Ubuntu畫面上,直接上網:

 

Step-2. 選取2007q3-51版,並下載:

 

Step-3.  這會自動安裝於 /home/tom/arm-2007q3/裡。

Step-4.  這樣,交叉編譯器就安裝完成了。

 

l           使用Cross Compiler編譯C函數,放入Android裡執行。

          可先將.h和.c程式碼存於自訂的Proj_01檔案夾裡,如下:

 

l           開始進行交叉編譯C程式碼

     接下來,對HalfAdder.c和 com_misoo_gx05_NativeJniAdder.c兩個程式檔,進行編譯,

     將  產生.o的目的程式(Object Code)檔。

 

*** 編譯HalfAdder.c程式 ***

 

 

*** 編譯com_misoo_gx05_NativeJniAdder.c程式 ***

 

    從畫面可看到他已經產出了兩個ARM-based的 .o 目的程式檔了。

 

l           連結出可在ARM上執行的 .so程式檔

     對HalfAdder.o和 com_misoo_gx05_NativeJniAdder.o兩個目的程式檔,

     進行連結而產生.so的共享程式檔案,使用下述命令:

 

 

l           將libNativeJniAdder.so共享程式檔拷貝並放置到Android模擬器裡

例如,在Windows環境。

Step-1. 先將.so檔案拷貝到c:/android-sdk-windows-1.0_r1/tools/裡。

Step-2. 啟動模擬器。

Step-3. 進入c:/android-sdk-windows-1.0_r1/tools/,並使用adb push命令

      將.so檔案,存入模擬器的/system/lib/裡。

 

l           撰寫主程式去呼叫這libNativeJniAdder.so共享程式

在Android的Java程式可輕鬆地透過JNI去呼叫此.so程式庫。

也可以再利用Cross Compiler編譯一個C主函數(main())去呼叫它。

 

 

 

~ END ~

 

 (by Misoo團隊)

   
排行榜 更多 +
日更计划漫画

日更计划漫画

浏览阅读 下载
浮生忆玲珑

浮生忆玲珑

角色扮演 下载
摩托追击

摩托追击

赛车竞速 下载