一、編寫helloworld.c android.mk
[cpp]view plain
copy
#include
intmain()
local_path:= $(call my-dir)
include $(clear_vars)
local_src_files:=hello.c
local_module := helloworld
local_module_tags := optional
include $(build_executable)
二.編譯
1、使用ndk r5
ndk-build 命令的使用。
2、使用通用toolchain
arm-none-linux-gnueabi-gcc -static hello.c -o helloworld
adb push helloworld /data
3、在原始碼環境中編譯
在原始碼development 目錄下建立hello目錄,將helloworld.c android.mk拷貝至hello目錄下,然後mm即可。
4、使用原始碼自帶toolchain
在這之前要把上一步中的helloworld模組clean:
make clean-helloworld
使用showcommands選項重新編譯helloworld,檢視具體命令,從輸出命令列可以看到,android編譯環境所用的交叉編譯工具鏈是prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc:
make helloworld showcommands
(target strip的作用是什麼?)
android並沒有採用glibc作為c庫,而是採用了google自己開發的bionic libc,通用的toolchain用來編譯和移植android 的linux核心是可行的,因為核心並不需要c庫,但是開發android的應用程式時,其他toolchain編譯的應用程式只能採用靜態編譯的方式才能執行,使用靜態方式編譯出來的執行檔案都比較大。
使用C語言擴充套件Python 四
首先,遵循 測試先行 的原則,先來看我們改造後的python這一端,你可以每次讀取音訊原始檔的乙個資料塊,將其轉遞給encoder物件的encode方法,這樣無論你的原始檔是何種格式,你都可以在encoder中進行自由的控制,示例 如下 import clame inbufsize 4096 if ...
使用C語言擴充套件Python 四
首先,遵循 測試先行 的原則,先來看我們改造後的python這一端,你可以每次讀取音訊原始檔的乙個資料塊,將其轉遞給encoder物件的encode方法,這樣無論你的原始檔是何種格式,你都可以在encoder中進行自由的控制,示例 如下 import clame inbufsize 4096 if ...
Android 程式設計下字型檔的使用
在安卓作業系統下對於 textview 字型的支援非常有限,預設情況下 textview 的 typeface 屬性支援 sans serif monospace 這三種字型,如果在沒有指定字型的情況下,系統缺省會使用 sans 作為文字顯示的字型。但這三種字型只支援英文,也就是說只要你顯示的文字是...