㈠ 如何件android中的命令移植到linux開發板上,想使用android中的一些命令,方便開發,比如logcat命令
本文用《Android深度探索(卷1):HAL與驅動開發》的隨書源代碼為例詳細說明如何配置Android驅動開發和測試環境,並且如何使用源代碼中的build.sh腳本文件在各種平台(UbuntuLinux、Android模擬器和S3C6410開發板)上編譯、安裝和測試Linux驅動。
建議讀者使用UbuntuLinux12.04或更高版本實驗本文的方法。
最好用root賬號登錄Linux。
一、安裝交叉編譯器
如果只是在UbuntuLinux上測試Linux驅動就不需要安裝交叉編譯器了,但要在Android模擬器或S3C6410開發板上進行測試,就必須安裝交叉編譯器。
首先下載交叉編譯器(分卷壓縮)
下載後解壓,會發現有兩個tgz文件,可以將這兩個文件放到/root/compilers目錄中,在Linux終端進入該目錄,執行如下命令安裝交叉編譯器。
[plain]viewplain
#tarzxvfarm-linux-gcc-4.3.2.tgz-C/
#tarjxvfarm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2-C/
二、編譯和測試Linux內核
這里的Linux內核有兩個,一個是goldfish,也就是Android模擬器使用的Linux內核、另外一個是S3C6410開發板使用的Linux內核(Linux2.6.36)。
讀者首先要下載這兩個Linux內核。
Android模擬器用的Linux內核源代碼(分卷壓縮)
用於S3C6410開發板的Linux內核源代碼(分卷壓縮)
分卷1
分卷2
由於隨書代碼中的word_count驅動已經在goldfish和linux2.6.36中分別建立了符號鏈接,以便在編譯linux內核時同時也會編譯word_count驅動,所以linux內核與源代碼目錄應與作者機器上的目錄相同。
也就是兩個linux內核目錄與源代碼目錄如下:
linux內核目錄
/root/kernel/goldfish
/root/kernel/linux_kernel_2.6.36
源代碼目錄
/root/drivers
注意/root/drivers目錄下就直接是每一章的源代碼了,例如/root/drivers/ch
06、/root/drivers/ch07
現在需要將/usr/local/arm/arm-none-linux-gnueabi/bin路徑加到Linux的PATH環境變數中(不會加的上網查,這是Linux的基本功)
最後進入/root/compilers/goldfish目錄,執行make命令編譯linux內核,如果完全編譯,大概20分鍾左右。
編譯完成後,會在/root/kernel/goldfish/arch/arm/boot目錄中生成一個zImage文件,代碼1.7MB,這就是用於Android模擬器的Linux內核文件。
三、編譯Linux驅動
現在來編譯隨書光碟的驅動程序,這里以word_count驅動為例。
在Linux終端進入/root/drivers/ch06/word_count目錄。
先別忙著編譯。
首先要設置打開/root/drivers/common.sh文件,修改第一行UBUNTU_KERNEL_PATH變數值為自己機器上安裝的UbuntuLinux內核路徑,只要執行「ls/usr/src」命令即可查看當前機器可用的linux內核。
㈡ Linux命令行怎麼編譯Android代碼
這個問題已經找到解決方案了,方法如下:
1.在Linux設置文件共享,將項目
共享,最好有個密碼什麼的。
2.在Linux上配置ssh server,用於
和編譯安卓源碼
3.Linux mac 通過
連接,原因是有線傳輸比無線的快很多,ping只是0.3左右ms,不影響使用。然後就可以mac編寫代碼,然後ssh
編譯什麼的,很方便,
㈢ 請問如何將自己在Linux系統里把開發的Android代碼,部署到實體Android手機中運行
你需要先將代碼編譯成apk的應用程序,才能使用
可以先考到存儲卡上,然後再安裝就OK了!
㈣ 如何把linux下的軟體的源代碼直接編譯到安卓平台
直接編譯需要軟體才可以反編譯出來,直接把軟體開發出來,封裝成適合安卓平台的app,只能是這個思路。
㈤ 如何使用自己的makefile編譯android ndk項目
其實android ndk上的編譯說到底也就是交叉編譯,只要配置好交叉編譯工具鏈,使用原有的makefile也是可以編譯出在android運行的c、c++程序的。以android-ndk-r4-crystax的ndk版本為例:編譯器路徑 android-ndk-r4-crystax/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin名稱前綴 arm-eabi-頭文件目錄 android-ndk-r4-crystax/build/platforms/android-3/arch-arm/usr/include庫文件目錄 android-ndk-r4-crystax/build/platforms/android-3/arch-arm/usr/lib你可以試一下上面的配置,如果編譯鏈接都沒有問題,可以adb push到android設備上運行看看,什麼結果?有點崩潰,根本運行不起來,你也許想試試看android自帶的ndk例子,確實是能夠運行的,問題在哪兒呢?只是正確配置了編譯器、頭文件、庫文件還不夠,還需要配置編譯、鏈接的參數,android例子中編譯鏈接的參數是什麼呢?你也許想深究一下android的makefile,可是不久你會發現那是更崩潰的事情,裡面用了很多的make腳本函數。其實android的makefile是可以把執行的詳細命令輸出來的,只要make的時候加上V=1即可。可以看到確實帶了很多參數編譯參數:-fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Wa,--noexecstack -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID 鏈接參數:-nostdlib -Bdynamic -Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,noreloc -Wl,--no-undefined -Wl,-z,noexecstack -L$(PLATFORM_LIBRARY_DIRECTORYS) crtbegin_static.o crtend_android.o 這其中鏈接參數中的-Wl,-dynamic-linker,/system/bin/linker、crtbegin_static.o、crtend_android.o是最關鍵的,android使用了自己的進程載入器,並且自定義了c運行時的啟動結束。難怪先前編譯的進程啟動不了。
㈥ 你的項目在Linux下怎麼部署的列舉一個
1、首先需要在linux伺服器上配置java環境,如安裝jdk+tomcat 2、配置完成jdk+tomcat環境後,需要把你的java項目復制到tomcat的webapps下 3、復制到tomcat的webapps後
㈦ 如何在linux系統的伺服器上進行編譯
方法/步驟
打開Myeclipse編輯器,在已經完成的web項目上面點擊右鍵,選擇export,然後選擇導出成war包,將導出的war包放在桌面或者其他文件夾。
㈧ 如何將項目部署在linux伺服器
1.首先用maven將項目打成war包,eclipse:選中項目右鍵-->run as-->maven package
2.空的Tomcat項目到linux伺服器中,改埠
3.將打包成的war包到Tomcat中webapps下
4.在bin目錄下啟動startup.sh
5.操作命令進入bin目錄: [root@localhost neco-tomcat-6.0.35-8094]# cd /opt/neco-tomcat-6.0.35-8094/bin/
對文件夾賦許可權 :[root@localhost bin]# chmod 777 -R /opt/neco-tomcat-6.0.35-8094/
啟動tomcat服務:[root@localhost bin]# ./startup.sh
關閉服務: [root@localhost bin]# ./shutdown.sh
查看日誌信息:[root@localhost bin]# tail -222f /opt/neco-tomcat-6.0.35-8094/logs/catalina.out
㈨ 如何在Linux上部署Java應用程序
java不用做任何改動就可以部署到linux系統,java編譯成*.
class文件
只需要
虛擬機
的支持,你只要在linux環境
下裝
一個jdk就OK了,然後配置一下
環境變數
。
然後java的class文件或者打包好的*.jar文件考到linux目錄下就可以用了.