當前位置:首頁 » 安卓系統 » android運行c

android運行c

發布時間: 2022-07-26 03:22:34

『壹』 如何讓android手機運行c程序

你可以用ndk開發包,sdk是跑java的,ndk是跑c或者c++的

『貳』 c語言編寫的程序可以直接在安卓上運行嗎是不是基本上安卓上所有的都要通過jvm解釋才能運行

當然可以,只需要安卓手機上安裝C語言的編譯器就可以了。如在手機上使用易歷知食軟體里的微C程序設計,就可以直接在安卓手機上寫C語言程序並運行,下面是其自帶的一個示例(熟悉的九九乘法表),手機上的代碼如下圖所示:

在手機上學習C語言編程就是這么簡單!

『叄』 有沒有手機可以運行的編程c語言的軟體

C4droid是款Android設備上的C/C++程序編譯器[2]
,默認以tcc(tiny
c
compiler)為編譯器,可以選擇安裝gcc插件(20mb,只有root用戶可以使用),選用gcc後,可以用sdl(簡單直控媒體層庫,需安裝sdl
plugin
for
c4droid)和qt(nokia官方開發庫,需安裝sdl
plugin
for
c4droid)。也可以開發native
android
app(需安裝sdl
plugin
for
c4droid),就像google
ndk一樣。軟體支持代碼高亮,編譯時間隨cpu主頻而定,主頻越高編譯越快。gcc插件版本4.7.2提供了示列程序,包含sdl,android
native,qt和命令行測試程序源碼

『肆』 如何在Android系統上運行C語言的程序

本人使用mini6410開發了一個sqlite資料庫的程序,在mini6410的linux系統下已經能夠成功運行了。因為Android使用的也是linux內核,所以我想當然的認為按照同樣的方法將程序移植到mini6410的android系統中也可以成功運行,但是當我運行程序的時候卻提示我不能找到可執行文件(xlisten-arm是交叉編譯出來的可執行文件):

/ # ./xlisten-arm
/system/bin/sh: ./xlisten-arm: not found

1.探索:

在網上搜索起初認為可能是庫文件的不全導致的,於是在查看可執行文件xlisten-arm所需要的動態鏈接庫:

執行語句:
# arm-linux-readelf -a ./xlisten-arm | grep "Shared"
0x00000001 (NEEDED) Shared library: [libsqlite3.so.0]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libdl.so.2]
0x00000001 (NEEDED) Shared library: [libc.so.6]
知道所需的動態鏈接庫後,到android文件系統中去照著寫庫文件,在目錄/system/lib 中,果然缺少相應的庫文件,於是認為找到了我問題的根源所在,在復制相應庫文件的時候為了保留原來的屬性,還特意用了

#cp -a filename dir
誰知將這些庫都添加進去以後,仍然無濟於事!

看來不僅僅事庫文件缺失的問題了,而且一般來說,如果真的是因為缺少庫文件而導致的問題,終端會提示我們鏈接某庫文件時沒有找到該庫文件。

2.正確的解決方法:

將程序編譯的時候選擇靜態編譯,即使用選項 -static

我是對Makefile文件中的CFLAG變數進行修改

CFLAGS = -Wall

改為;

CFLAGS = -Wall -static

然而此時又出現問題了:

undefined reference to `pthread_mutex_*'

undefined reference to `dl*'

提示沒有定義這些函數,於是在包含的庫文件中添加了這兩個庫文件

在Makefile中,修改LIBS變數;

LIBS = -lsqlite3 -lm -lcrypt

改為:

LIBS = -lsqlite3 -lm -lcrypt -lpthread -ldl

然後進行交叉編譯,成功了!

編譯出來的可執行文件比較大,因為事靜態編譯的,我的有2M多,

拷貝到開發板的andriod系統中,

修改許可權:

#chmod 777 xlisten-arm

執行:

/ # ./xlisten-arm

OK!能夠正確的執行了!

『伍』 如何在android系統上執行c文件

本人使用mini6410開發了一個sqlite資料庫的程序,在mini6410的linux系統下已經能夠成功運行了。因為Android使用的也是linux內核,所以我想當然的認為按照同樣的方法將程序移植到mini6410的android系統中也可以成功運行,但是當我運行程序的時候卻提示我不能找到可執行文件(xlisten-arm是交叉編譯出來的可執行文件): / # ./xlisten-arm /system/bin/sh: ./xlisten-arm: not found 1.探索: 在網上搜索起初認為可能是庫文件的不全導致的,於是在查看可執行文件xlisten-arm所需要的動態鏈接庫: 執行語句: # arm-linux-readelf -a ./xlisten-arm grep "Shared" 0x00000001 (NEEDED) Shared library: [libsqlite3.so.0] 0x00000001 (NEEDED) Shared library: [libm.so.6] 0x00000001 (NEEDED) Shared library: [libcrypt.so.1] 0x00000001 (NEEDED) Shared library: [libpthread.so.0] 0x00000001 (NEEDED) Shared library: [libdl.so.2] 0x00000001 (NEEDED) Shared library: [libc.so.6] 知道所需的動態鏈接庫後,到android文件系統中去照著寫庫文件,在目錄/system/lib 中,果然缺少相應的庫文件,於是認為找到了我問題的根源所在,在復制相應庫文件的時候為了保留原來的屬性,還特意用了 #cp -a filename dir 誰知將這些庫都添加進去以後,仍然無濟於事! 看來不僅僅事庫文件缺失的問題了,而且一般來說,如果真的是因為缺少庫文件而導致的問題,終端會提示我們鏈接某庫文件時沒有找到該庫文件。 2.正確的解決方法: 將程序編譯的時候選擇靜態編譯,即使用選項 -static 我是對Makefile文件中的CFLAG變數進行修改 CFLAGS = -Wall 改為; CFLAGS = -Wall -static 然而此時又出現問題了: undefined reference to `pthread_mutex_*' undefined reference to `dl*' 提示沒有定義這些函數,於是在包含的庫文件中添加了這兩個庫文件 在Makefile中,修改LIBS變數; LIBS = -lsqlite3 -lm -lcrypt 改為: LIBS = -lsqlite3 -lm -lcrypt -lpthread -ldl 然後進行交叉編譯,成功了! 編譯出來的可執行文件比較大,因為事靜態編譯的,我的有2M多, 拷貝到開發板的andriod系統中, 修改許可權: #chmod 777 xlisten-arm 執行: / # ./xlisten-arm OK!能夠正確的執行了!

『陸』 手機的Android系統能在手機上用C/C++編程嗎

可以,有個手機編程軟體叫做C4droid,專門用來編譯C/C++文件的,要下載支持庫,不大的,你可以看看

『柒』 如何在安卓上用C語言

害哥搞這個離線包搞了個把小時。為了清楚,上個圖: 敲個LS,什麼東西都沒有,這個目錄是cygwin的安裝目錄下面的home文件夾下的用戶名文件夾。接下來是配置與Android相關的。在home/用戶名,這個文件夾下有一個文件為.bash_profile,打開它,到最後添加兩行NDK的環境變數:NDK_ROOT=/cygdrive/d/android-ndk-r6export NDK_ROOT上面的意思是,ndk的目錄是,d:/android-ndk-r6添加完之後,關閉Cygwin重新啟動一下,然後敲入cd $NDK_ROOT,是否進入到ndk的目錄了?否則就看看哪個字母錯了。在ndk的目錄下samples下有很多例子,隨便弄個就可編譯了。下面是新建一個項目,以對C語言在項目中的位置更清楚。打開Eclipse新建一個Android項目,取名hellojni,為了清晰,便於維護,及各種各樣的好處,JNI的JAVA代碼單獨一個類,單獨一個包。其實最好能不用JNI就別用JNI,這東西負作用巨大,特別是在用到JNI復雜的地方,什麼內存啊,類型啊,哪裡調用的方法,異常啊,可靠性都非常麻煩。非要用JNI的復雜功能,做好兩件事,做之前充分設計,設計之前充分學習一下JNI文檔。當然對於一些簡單的應用,那隻需要充分仔細。作好參數,返回值的檢查,記得釋放內存就行了。
打字不易,如滿意,望採納。

『捌』 Android程序可以調用C函數嗎 我需要使用C訪問Android底層,然後希望Android程序調用C程序。

在一些Android應用的開發中,需要通過JNI和 Android NDK工具實現JAVA和C/C++之間的相互調用。
Java Native Interface (JNI)標準是java平台的一部分,它允許Java代碼和其他語言寫的代碼進行交互。JNI是本地編程介面,它使得在 Java 虛擬機 (VM)內部運行的 Java代碼能夠與用其它編程語言(如 C、C++和匯編語言)編寫的應用程序和庫進行交互操作。
NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。NDK集成了交叉編譯器,並提供了相應的mk文件隔離CPU、平台、ABI等差異,開發人員只需要簡單修改mk文件(指出「哪些文件需要編譯」、「編譯特性要求」等),就可以創建出so。NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。

『玖』 安卓系統上能運行c語言的程序嗎

可以的,只要編譯器支持,C語言程序不像JAVA,最終都會被編譯器編譯成機器代碼的,所以關鍵是編譯器能不能編譯成相關CPU和操作系統支持的代碼。
dos是的批處理是不支持的。
編寫手機軟體目前主要還是用C和JAVA,C用得最多

『拾』 有能在Android系統上運行的c語言編程軟體嗎,推薦一下

C4droid是款Android設備上的C/C++程序編譯器[2] ,默認以tcc(tiny c compiler)為編譯器,可以選擇安裝gcc插件(20mb,只有root用戶可以使用),選用gcc後,可以用sdl(簡單直控媒體層庫,需安裝sdl plugin for c4droid)和qt(nokia官方開發庫,需安裝sdl plugin for c4droid)。也可以開發native android app(需安裝sdl plugin for c4droid),就像google ndk一樣。軟體支持代碼高亮,編譯時間隨cpu主頻而定,主頻越高編譯越快。gcc插件版本4.7.2提供了示列程序,包含sdl,android native,qt和命令行測試程序源碼。

熱點內容
python查看編碼 發布:2025-01-21 19:58:12 瀏覽:836
人記憶存儲位置 發布:2025-01-21 19:55:05 瀏覽:690
計算機存儲容量的基本單位是 發布:2025-01-21 19:35:44 瀏覽:980
c語言怎麼給字元賦值 發布:2025-01-21 19:30:45 瀏覽:122
拍賣php源碼 發布:2025-01-21 19:27:52 瀏覽:115
數控編程南京 發布:2025-01-21 19:20:16 瀏覽:163
ftp伺服器功能為 發布:2025-01-21 19:05:53 瀏覽:121
7z解壓有密碼 發布:2025-01-21 19:05:08 瀏覽:608
軒逸經典豪華有哪些配置 發布:2025-01-21 18:56:16 瀏覽:71
hibernate查詢sql語句 發布:2025-01-21 18:48:46 瀏覽:304