不能,雖然兩者都是基于同一內(nèi)核開(kāi)發(fā)的產(chǎn)品,但是兩者經(jīng)過(guò)了后期開(kāi)發(fā),兩者為了達(dá)到一些應(yīng)用都做了優(yōu)化、改動(dòng),所以在linux 上能做的事情,在安卓那里就不能做,不是說(shuō)一定不能,這個(gè)是可以通過(guò)一些小的應(yīng)用來(lái)實(shí)現(xiàn)一些的(個(gè)人見(jiàn)解)
成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供寧洱企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為寧洱眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
使用eclipse進(jìn)行嵌入式Linux的開(kāi)發(fā)環(huán)境配置:
1、安裝jdk
jdk(java development kit)即java開(kāi)發(fā)包,其中包含了運(yùn)行eclipse所需要的jre. ubuntu缺省安裝的gnu版本的jre運(yùn)行效率不高,所以需要安裝sun公司的jre. 首先從sun的網(wǎng)站上下載安裝包jdk-6u7-linux-i586.bin,然后如下進(jìn)行安裝:
# mkdir -p /opt/java
# ./jdk-6u7-linux-i586.bin // 執(zhí)行自解壓文件,生成目錄
# mv jdk1.6.0_07 /opt/java // 把目錄移到/opt/java下
# cd /opt/java
# ln -s jdk1.6.0_07 jdk
# mv /etc/alternatives/java /etc/alternatives/java.gnu
# ln -s /opt/java/jdk/bin/java /etc/alternatives/java
# export JAVA_HOME=/opt/java/jdk // 設(shè)置環(huán)境變量
2、安裝eclipse和cdt
從eclipse網(wǎng)站上下載安裝包eclipse-SDK-3.4-linux-gtk.tar.gz 和cdt-master-5.0.0.zip
# cd /opt
# tar zxvf eclipse-SDK-3.4-linux-gtk.tar.gz // 解壓生成eclipse目錄
# export PATH=/opt/eclipse:$PATH
# mkdir -p /opt/cdt
# cd /opt/cdt
# unzip cdt-master-5.0.0.zip
# cp -r plugins/* /opt/eclipse/plugins/
# cp -r features/* /opt/eclipse/features/
二、創(chuàng)建c/c++工程
假設(shè)已經(jīng)在linux上安裝好了arm交叉工具鏈,下面介紹如何創(chuàng)建、交叉編譯和調(diào)試c/c++工程,進(jìn)入eclipse安裝路徑后,運(yùn)行eclipse。
創(chuàng)建c 工程
使用缺省的Linux GCC工具鏈
進(jìn)入c/c++ 界面
添加源代碼文件1
添加源代碼文件2
編輯代碼
設(shè)置工程屬性,指定交叉工具鏈1
設(shè)置工程屬性,指定交叉工具鏈2
設(shè)置工程屬性,指定交叉工具鏈3
編譯工程
已生成arm平臺(tái)可執(zhí)行代碼
配置調(diào)試選項(xiàng)
設(shè)置Debugger和 GDB debugger選項(xiàng)
設(shè)置連接類(lèi)型為T(mén)CP,目標(biāo)板的ip地址和調(diào)試端口號(hào)。端口號(hào)任意指定,通常大于1024(避免和系統(tǒng)所用端口號(hào)沖突)
在開(kāi)發(fā)板上運(yùn)行程序,格式如上圖所示:gdbserver是交叉調(diào)試輔助程序;192.168.0.150是主機(jī)的ip地址;1234是調(diào)試端口號(hào),和eclipse調(diào)試選項(xiàng)里設(shè)定的端口號(hào)要一致
點(diǎn)擊Debug,進(jìn)入調(diào)試界面
執(zhí)行到斷點(diǎn)
eclipse的調(diào)試界面和操作和在windows下開(kāi)發(fā)類(lèi)似。
所需開(kāi)發(fā)工具及環(huán)境
虛擬機(jī)Linux:Fedora 9
交叉編譯工具:arm-linux-gcc-3.4.1.tar.bz2
集成開(kāi)發(fā)工具:Eclipse(Linux安裝包中自帶的,安裝Linux時(shí)選中安裝)
安裝ARM交叉編譯器
1. 安裝。其實(shí)很簡(jiǎn)單,就是將下載的arm-linux-gcc-3.4.1.tar.bz2解壓到Linux根目錄即可(因?yàn)榻鈮汉笠呀?jīng)包含了/usr/local目錄,所以要解壓到根目錄),如下命令:
tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 -C /
解壓后的目錄/usr/local/arm/3.4.1/
2. 設(shè)置環(huán)境變量。就是把交叉編譯器的路徑設(shè)置到系統(tǒng)環(huán)境變量里面去。
echo $PATH
查看現(xiàn)有的環(huán)境變量
如果只想臨時(shí)添加交叉編譯器的環(huán)境變量(注:臨時(shí)添加的系統(tǒng)重啟或注銷(xiāo)后又沒(méi)有了),只需在命令行輸入如下命令:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
如果想這個(gè)環(huán)境變量永久的添加到系統(tǒng)的環(huán)境變量中,則你只需把這個(gè)命令添加到/root/.bashrc文件的最后一行即可(這個(gè)文件是隱藏文件,你要在文件瀏覽器中單擊查看菜單,勾選顯示隱藏文件才能看到)
3. 測(cè)試建立的交叉編譯環(huán)境。新建一個(gè)c程序,文件名:test.c, 如下:
#include stdio.h
int main(void)
{
printf("Hellow world!\n");
return 0;
}
進(jìn)行交叉編譯,如下:
arm-linux-gcc -o test test.c
將交叉編譯好的目標(biāo)文件test下載到ARM開(kāi)發(fā)板中并運(yùn)行,如下:
./test
輸出結(jié)果為:
Hellow world!
用集成開(kāi)發(fā)工具Eclipse來(lái)開(kāi)發(fā)嵌入式應(yīng)用程序
雙擊Eclipse圖標(biāo)啟動(dòng)Eclipse
設(shè)置Eclipse的工作空間,就是選個(gè)目錄,單擊OK
啟動(dòng)后的主界面
開(kāi)始新建一個(gè)應(yīng)用程序工程
選擇新建一個(gè)C工程,單擊Next
給工程取個(gè)名字,這里我就叫test_app;然后選擇工程類(lèi)型,我選擇了個(gè)Hellow world C工程模版,單擊Next
填寫(xiě)作者、版權(quán)等信息,單擊Next
沒(méi)什么選的,點(diǎn)擊Finish
單擊Yes
新建好的項(xiàng)目工程
展開(kāi)左邊的源代碼目錄,雙擊打開(kāi)主函數(shù)。這里只是輸出一句"Hello World!!!",你可以做一些其他復(fù)雜的應(yīng)用
單擊Project菜單,去掉Build Automatically的勾選,因?yàn)楣催x的話,每次修改一個(gè)地方工程都會(huì)自動(dòng)進(jìn)行編譯
打開(kāi)工程的屬性對(duì)話框進(jìn)行編譯選項(xiàng)的設(shè)置
我們的應(yīng)用程序最終要到嵌入式arm上運(yùn)行,這里就要把gcc改成arm-linux-gcc編譯器,當(dāng)然前提是你要在你的開(kāi)發(fā)主機(jī)上先安裝arm-linux-gcc
C連接器也要改成arm-linux-gcc
這里的Libraries是設(shè)置你的應(yīng)用程序中用到的庫(kù)文件,比如應(yīng)用程序中用到了線程類(lèi),則這里在上面添加pthread這個(gè)庫(kù),下面就添加這個(gè)庫(kù)的路徑。如果應(yīng)用程序沒(méi)用到任何庫(kù)文件就不用管了
選中左側(cè)的工程名,右鍵,在彈出的菜單中選擇Build Project編譯工程
編譯好后的工程,目標(biāo)文件在Debug目錄下
27種用法格式 :
用法說(shuō)明 :
1、 pm list packages : prints all packages, optionally only those whose package name contains the text in FILTER. Options:
例子:列出系統(tǒng)中所有packages
2、 pm list permission-groups : prints all known permission groups.
例子:
3、 pm list permissions : prints all known permissions, optionally only those in GROUP. Options:
例子:列出系統(tǒng)所有許可
4、 pm list instrumentation : use to list all test packages; optionally supply to list the test packages for a particular application. Options:
-f: list the .apk file for the test package.
5、 pm list features : prints all features of the system.
例子:列出所有手機(jī)特性
6、 pm list users : prints all users on the system.
例子:
7、 pm path : print the path to the .apk of the given PACKAGE.
例子:按包名查找apk文件所在路徑
8、 pm dump : print system state associated with the given PACKAGE.
9、 pm install : installs a package to the system. Options:
例子:
10、 pm uninstall : removes a package from the system. Options:
-k: keep the data and cache directories around after package removal. 保留數(shù)據(jù)
例子:
11、 pm clear : deletes all data associated with a package..
例子:只刪除數(shù)據(jù)
12、 pm enable, disable, disable-user, disable-until-used : these commands change the enabled state of a given package or component (written as "package/class").
13、 pm grant, revoke : these commands either grant or revoke permissions to applications. Only optional permissions the application has declared can be granted or revoked.
14、 pm get-install-location : returns the current install location.
15、 pm set-install-location : changes the default install location.
NOTE: this is only intended for debugging; using this can cause applications to break and other undersireable behavior.
16、 pm trim-caches : trim cache files to reach the given free space.
17、 pm create-user : create a new user with the given USER_NAME, printing the new user identifier of the user. 創(chuàng)建新用戶
18、 pm remove-user : remove the user with the given USER_IDENTIFIER, deleting all data associated with that user 。 按用戶ID刪除用戶
dd :用指定大小的塊拷貝一個(gè)文件,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換。
注意:指定數(shù)字的地方若以下列字符結(jié)尾,則乘以相應(yīng)的數(shù)字: b=512 ; c=1 ; k=1024 ; w=2
參數(shù)注釋?zhuān)?/p>
4、備份與恢復(fù)MBR
·備份文件開(kāi)始的512個(gè)字節(jié)大小的MBR信息到指定文件:
#dd if=/system/xbin/busybox of=/data/local/tmp/bb count=1 bs=512
· count=1 指僅拷貝一個(gè)塊; bs=512 指塊大小為512個(gè)字節(jié)
·恢復(fù):
#dd if=/data/local/tmp/bb of=/data/local/tmp/bbb
·將備份的MBR信息寫(xiě)到磁盤(pán)開(kāi)始部分
/dev/null ,外號(hào)叫無(wú)底洞,你可以向它輸出任何數(shù)據(jù),它通吃,并且不會(huì)撐著!
/dev/zero ,是一個(gè)輸入設(shè)備,你可你用它來(lái)初始化文件。該設(shè)備無(wú)窮盡地提供 0 ,可以使用任何你需要的數(shù)目——設(shè)備提供的要多的多。他可以用于向設(shè)備或文件寫(xiě)入字符串 0 。
/dev/null ——它是空設(shè)備,也稱(chēng)為位桶( bit bucket )。任何寫(xiě)入它的輸出都會(huì)被拋棄。如果不想讓消息以標(biāo)準(zhǔn)輸出顯示或?qū)懭胛募?,那么可以將消息重定向到位桶?/p>
文章題目:安卓與linux命令 linux 與安卓
網(wǎng)站路徑:http://sd-ha.com/article14/ddsipde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、企業(yè)建站、軟件開(kāi)發(fā)、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)