導航:首頁 > 源碼編譯 > sdk工程編譯

sdk工程編譯

發布時間:2023-04-30 20:29:06

1. c# sdk編譯java sdk

1)下載Java SDK並安裝。
2)下載並解壓android-sdk,將解壓後的文件拷貝到c : Program Files(x86)/Androidandroid-sdk。
3)下載並安裝installer_r22.0.4-windows.exe,把該程序也安裝到目錄C: Program Files(x86)/Androidandroid -sdk。
4)配置Java環境變數:右鍵我的電腦-屬性-高級系統設置-高級-環境變數-系統變數里,找到Path,雙擊進行修改,在最後面增加:c: Program。

2. Android 集成三方SDK編譯時classes.jar文件沖突

這幾天的任務是將mapbox的工程合到程序中去,但是合並過程卻出現了問題
合並方法:在app的build.gradle中添加
dependencies {
compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:0.7.4@aar'){
transitive=true
}
}
但是合並後會報錯:
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
這個錯誤是由於jar包沖突,解決方法如下:
方法一:找到沖突包,將沖突包刪除,一般沖突包為'com.android.support:appcompat-v7:22.2.0'或者'com.android.support:support-v4:22.2.0',但是我刪除沖突包後,依然報錯,於是使用方法二
方法二:因為我的沖突包是'com.android.support:support-v4:22.2.0',所以找到項目根目錄-build-intermediates-dex-cache-cache.xml文件,將其中跟v4有關的全部刪除,然後clean project,然後將compile改為provided如下:
dependencies {
compile 'com.vividsolutions:jts:1.13'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.jakewharton:disklrucache:2.0.2'
provided 'com.android.support:support-v4:21.0.0'
}

3. SDK的編譯命令是什麼

ent Kit 的縮寫,中文意思就是「軟體開發工具包」。這是一個覆蓋面相當廣泛的名詞,可以這么說:輔助開發某一類軟體的相關文檔、範例和工具的集合都可以叫做「SDK」。具體到我們這個系列教程,我們後面只討論廣義 SDK 的一個子集——即開發 Windows 平台下的應用程序所使用的 SDK。 呵呵,其實上面只是說了一個 SDK 大概的概念而已,理解什麼是 SDK 真有這么容易嗎?恐怕沒這么簡單!為了解釋什麼是 SDK 我們不得不引入 API、動態鏈接庫、導入庫等等概念。^_^,不要怕,也就是幾個新的名詞而已,我也是到了大學快結束的時候才體會到其實學習新知識就是在學習新名詞、新概念和新術語。 首先要接觸的是「API」,也就是 Application Programming Interface,其實就是操作系統留給應用程序的一個調用介面,應用程序通過調用操作系統的 API 而使操作系統去執行應用程序的命令(動作)。其實早在 DOS 時代就有 API 的概念,只不過那個時候的 API 是以中斷調用的形式(INT 21h)提供的,在 DOS 下跑的應用程序都直接或間接的通過中斷調用來使用操作系統功能,比如將 AH 置為 30h 後調用 INT 21h 就可以得到 DOS 操作系統的版本號。而在 Windows 中,系統 API 是以函數調用的方式提供的。同樣是取得操作系統的版本號,在 Windows 中你所要做的就是調用 GetVersionEx() 函數。可以這么說,DOS API 是「Thinking in 匯編語言」的,而 Windows API 則是「Thinking in 高級語言」的。DOS API 是系統程序的一部分,他們與系統一同被載入內存並且可以通過中斷矢量表找到他們的入口,那麼 Windows API 呢?要說明白這個問題就不得不引入我們下面要介紹得這個概念——DLL。 DLL(又是一衡知個縮寫,感覺 IT 這個行業里三字頭縮寫特別多),即 Dynamic Link Library(動態鏈接庫)。我們經常會看到一些 .dll 格式的文件,這些文件就是動態鏈接庫文件,其實也是一種可執行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接執行,他們通常由 .exe 在執行時裝入,內含有一些資源以及可執塵運行代碼咐兄消等。其實 Windows 的三大模塊就是以 DLL 的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),裡面就含有了 API 函數的執行代碼。為了使用 DLL 中的 API 函數,我們必須要有 API 函數的聲明(.H)和其導入庫(.LIB),函數的原型聲明不難理解,那麼導入庫又是做什麼用的呢?我們暫時先這樣理解:導入庫是為了在 DLL 中找到 API 的入口點而使用的。 所以,為了使用 API 函數,我們就要有跟 API 所對應的 .H 和 .LIB 文件,而 SDK 正是提供了一整套開發 Windows 應用程序所需的相關文件、範例和工具的「工具包」。到此為止,我們才真正的解釋清楚了 SDK 的含義。 由於 SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程序的開發方式叫做「SDK 編程」。而 API 和 SDK 是開發 Windows 應用程序所必需的東西,所以其它編程框架和類庫都是建立在它們之上的,比如 VCL 和 MFC,雖然他們比起「SDK 編程」來有著更高的抽象度,但這絲毫不妨礙它們在需要的時候隨時直接調用 API 函數 所謂的MD5 , 是密碼學中的一門演演算法 , 在電腦界來說 , 常常運用在數位簽章之上 , 他可以將一個很大的檔案 (例如 MP3 音樂 , ISO 光碟影像檔 ) , 經過某種運算 , 簽出一組特徵值 , 而他的長度就是32個位元組 , 所謂的特徵值 , 也就是說 , 基本上 , 每個檔案的特徵都不一樣 , 自然簽出來的特徵也不一樣羅 , 因此 , 舉例來說 , 若是我們要比對某某MP3檔案是否已經有了 , 我們不需要比對整個檔案 (可能有4MB那麽大) , 我們只要比對32位元組的特徵值就好了 。
IDE IDE 集成開發環境:Integrated Develop Environment,電子集成驅動器:Integrated Drive Electronics 1.IDE(Integrated Development,集成開發環境) 集成開發環境(簡稱IDE)軟體是用於程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面工具。就是集成了代碼編寫功能、分析功能、編譯功能、debug功能等一體化的開發軟體套。所有具備這一特性的軟體或者軟體套(組)都可以叫做IDE。如微軟的Visual Studio系列,Borland的C++ Builder,Delphi系列等。該程序可以獨立運行,也可以和其它程序並用。例如,BASIC語言在微軟辦公軟體中可以使用,可以在微軟Word文檔中編寫WordBasic程序。IDE為用戶使用Visual Basic、Java和PowerBuilder等現代編程語言提供了方便。 不同的技術體系有不同的IDE。比如visual studio.Net可以稱為C++、VB、C#等語言的集成開發環境,所以visual studio.Net可以叫做IDE。同樣,Borland的JBuilder也是一個IDE,它是Java的IDE。zend studio、editplus、ultra edit這些,每一個都具備基本的編碼、調試功能,所以每一個都可以稱作IDE。 IDE多被用於開發HTML應用軟體。例如,許多人在設計網站時使用IDE(如HomeSite、DreamWeaver、FrontPage,等等),因為很多項任務會自動生成。IDE集成代碼編輯,代碼生成,界面設計,調試,編譯等功能,目前還融合了建模功能。

4. sdk 編譯器 之間關系

SDK,即軟體開發包,裡面一般包含有編譯器和編譯時需要的支持庫。(有時候不一定有編譯器)

Symbian平台的開發,我沒做過。VC,我們看到的界面,只是一個編輯窗口,編譯的時候,它會調用相關的編譯器,並使用某些設定的編譯參數。我猜測如下:
Symbian的軟體包里,應該帶有編譯器和相關的支持庫,並且在安裝的時候,它會修改VC的配置文件,使得其中關於Symbian的工程,調用自帶的編譯器和自設的參數來編譯程序。

5. 如何編譯hi3520d sdk

第一章 Hi3520D_SDK_Vx.x.x.x版本升級操作說明
如果您是首次安裝本SDK,請直接參看第2章。

第二章 首次安裝SDK
1、hi3520D SDK包位置
在"hi3520D_V100R001***/01.software/board"目錄下,您可以看到一個 hi3520D_SDK_Vx.x.x.x.tgz 的文件,
該文件就是hi3520D的軟體開發包。
2、解壓縮SDK包
linux伺服器上(或者一台裝有linux的PC上,主流的linux發行版本均可以),使用命令:tar -zxf hi3520D_SDK_Vx.x.x.x.tgz ,
解壓縮該文件,可以得到一個hi3520D_SDK_Vx.x.x.x目錄。
3、展開SDK包內容
返回hi3520D_SDK_Vx.x.x.x目錄,運行./sdk.unpack(請用root或sudo許可權執行)將會展開SDK包打包壓縮存放的內容,請按照提示完成操作。
如果您需要通過WINDOWS操作系統中轉拷貝SDK包,請先運行./sdk.cleanup,收起SDK包的內容,拷貝到新的目錄後再展開。
4、在linux伺服器上安裝交叉編譯器
1)安裝uclibc交叉編譯器(注意,需要有sudo許可權或者root許可權):
進入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100nptl-linux目錄,運行chmod +x cross.install,然後運行./cross.install即可。
2) 安裝glibc交叉編譯器(注意,需要有sudo許可權或者root許可權,暫時不支持glibc版本):
進入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目錄,運行chmod +x cross.install,然後運行./cross.install即可。
3) 執行source /etc/profile, 安裝交叉編譯器的腳本配置的環境變數就可以生效了,或者請重新登陸也可。
5、編譯osdrv
參見osdrv目錄下readme
6、SDK目錄介紹
hi3520D_SDK_Vx.x.x.x 目錄結構如下:
|-- sdk.cleanup # SDK清理腳本
|-- sdk.unpack # SDK展開腳本
|-- osdrv # 存放操作系統及相關驅動的目錄
| |-- busybox # busybox源代碼
| |-- drv # drv源代碼
| |-- kernel # linux內核源代碼
| |-- pub # 編譯好的鏡像、工具、drv驅動等
| |-- rootfs_scripts # rootfs源代碼
| |-- toolchain # 交叉編譯器
| |-- tools # linux工具源代碼
| |-- uboot # uboot源代碼
| `-- Makefile # osdrv Makefile
|-- package # 存放SDK各種壓縮包的目錄
| |-- osdrv.tgz # linux內核/uboot/rootfs/tools源碼壓縮包
| |-- mpp.tgz # 媒體處理平台軟體壓縮包
| `-- image # 可供FLASH燒寫的映像文件,如內核、根文件系統
|-- scripts # 存放shell腳本的目錄
|-- mpp # 存放媒體處理平台的目錄
|-- component # 組件源代碼
|-- extdrv # 板級外圍驅動源代碼
|-- include # 對外頭文件
|-- ko # 內核模塊
|-- lib # release版本庫以及音頻庫
|-- tools # 媒體處理相關工具
`-- sample # 樣例源代碼

第三章、安裝、升級hi3520DDEMO板開發開發環境
# 如果您使用的hi3520D的DEMO板,可以按照以下步驟燒寫u-boot,內核以及文件系統,以下步驟均使用網路來更新。
# 通常,您拿到的單板中已經有u-boot,如果沒有的話,就需要使用模擬器進行燒寫。
# 更詳細的操作步驟及說明,請參見01.software\board\documents目錄下的《Linux開發環境用戶指南》。
# 以下操作假設您的單板上已經有u-boot,使用網口燒寫uboot、kernel及rootfs到Flash中。
# Demo單板默認為從SPI Flahs啟動。
1、配置tftp伺服器
# 可以使用任意的tftp伺服器,將package/image_uclibc(或image_glibc)下的相關文件拷貝到tftp伺服器目錄下。

2、參數配置
# 單板上電後,敲任意鍵進入u-boot。設置serverip(即tftp伺服器的ip)、ipaddr(單板ip)和ethaddr(單板的MAC地址)。
setenv serverip xx.xx.xx.xx
setenv ipaddr xx.xx.xx.xx
setenv ethaddr xx:xx:xx:xx:xx:xx
setenv netmask xx.xx.xx.xx
setenv gatewayip xx.xx.xx.xx
ping serverip,確保網路暢通。
3、燒寫映像文件到SPI Flash
以16M SPI Flash為例。
1)地址空間說明
| 1M | 4M | 11M |
|---------------|---------------|---------------|
| boot | kernel | rootfs |
以下的操作均基於圖示的地址空間分配,您也可以根據實際情況進行調整。
2)燒寫u-boot
sf probe 0
mw.b 82000000 ff 100000
tftp 0x82000000 u-boot-hi3520D.bin
sf probe 0
sf erase 0 100000
sf write 82000000 0 100000
reset
3)燒寫內核
mw.b 82000000 ff 400000
tftp 82000000 uImage_3520d
sf probe 0
sf erase 100000 400000
sf write 82000000 100000 400000
4)燒寫文件系統
mw.b 82000000 ff b00000
tftp 0x82000000 rootfs_3520d_64k.jffs2
sf erase 500000 b00000
sf write 82000000 500000 b00000
5)設置啟動參數
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)'
setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000'

sa

4、啟動新系統
reset # 重啟進入新系統。
第四章、開發前環境准備
1、管腳復用
與媒體業務相關的管腳復用都在mpp/ko_hi3520D目錄下的sh腳本中配置,如果與實際情況不符請直接修改,此腳本被load3520D調用,在載入mpp內核模塊之前被執行;
mpp之外的其他管腳復用統一在uboot中配置,詳細說明請參見《U-boot移植應用開發指南》。

第五章、使用SDK和DEMO板進行開發
1、開啟Linux下的網路
# 設置網路
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx;
ifconfig eth0 xx.xx.xx.xx netmask xx.xx.xx.xx;
route add default gw xx.xx.xx.xx
# 然後ping一下其他機器,如無意外,網路將能正常工作。
2、使用NFS文件系統進行開發
# 在開發階段,推薦使用NFS作為開發環境,可以省去重新製作和燒寫根文件系統的工作。
# 掛載NFS文件系統的操作命令:
mount -t nfs -o nolock -o tcp xx.xx.xx.xx:/your-nfs-path /mnt
# 然後就可以在/mnt目錄下訪問伺服器上的文件,並進行開發工作。
3、開啟telnet服務
# 網路正常後,運行命令 telnetd& 就可以啟動單板telnet服務,然後才能使用telnet登錄到單板。
4、運行MPP業務
# 在單板linux系統下,進入mpp/ko目錄,載入KO
cd mpp/ko
./load3520D -i

# 進入各sample目錄下執行相應樣常式序(sample需要先在伺服器上成功編譯過)
cd mpp/sample/vio
./sample_vio 0

第六章 地址空間分配與使用
1、DDR內存管理說明
1)所有DDR內存中,一部分由操作系統管理,稱為OS內存;另一部分由MMZ模塊管理,供媒體業務單獨使用,稱為MMZ內存。
2)OS內存起始地址為0x80000000,內存大小可通過bootargs進行配置,例如第三章中的setenv bootargs 'mem=64M ... ',表示分配給操作系統內存為64M,您可以根據實際情況進行調整。
3)MMZ內存由MMZ內核模塊管理(mpp/ko_hi35xx目錄下的mmz.ko),載入mmz模塊時,通過模塊參數指定其起始地址及大小,例如:
insmod mmz.ko mmz=anonymous,0,0x84000000,186M:jpeg,0,0x8fa00000,5M anony=1 || report_error
表示mmz兩塊區域,區域一的名稱為anonymous,起始地址為0x84000000,大小為186M;區域二的名稱為jpeg,起始地址為0x8fa00000,大小為5M。
您可以通過修改mpp/ko_hi35XX目錄下load3520D腳本中的mmz模塊參數,來修改其起始地址和總大小。
4)請注意MMZ內存地址范圍不能與OS內存重疊。
2、DEMO板DDR內存管理示意
1) 以容量為256MBytes的DDR內存為例,以下為根據本文檔和SDK默認配置得到的內存管理示意圖:

DDR:

-----|-------| 0x80000000 # Memory managed by OS.
64M | OS |
| |
-----|-------| 0x84000000 # Memory managed by MMZ block anonymous.
187M | MMZ |
| |
-----|-------| 0x8fa00000 # Memory managed by MMZ block jpeg.
5M | |
| |
-----|-------| 0x8ff00000 # Not used.
1M | |
| |
-----|-------| 0x90000000 # End of DDR.

注意:
(1)用戶在配置啟動參數時需要設置OS的管理內存為64M,「setenv bootargs 'mem=64M ...」。
(2)系統啟動後,配置load3520D的腳本中mmz的管理內存為191M,「insmod mmz.ko mmz=anonymous,0,0x84000000,186M:jpeg,0,0x8fa00000,5M anony=1 || report_error」。

6. 如何編譯android sdk

如果沒有真正開發板,又想深入到android
framework里,或kernel里的話,就只能用android
的emulator了。
但是我們下載的android
SDK沒有源代碼,我們沒辦法跟蹤修改framework和kernel里的東西。
所以有了想嘗試自己從頭生成SDK的想法。
1.
首先下載編譯android所有source
code.
具體步驟這里不再贅述,參考ht
tp:/
/source.and
roid.c
om/download
cd
mydroid
repo
init
-u
git://android.git.kernel.org/platform/manifest.git
repo
sync
一點小提示:
有時候google的android伺服器老是斷,總不能讓我們守在電腦旁邊一直手工重新repo
sync吧,這可是需要N個小時才能下載完的啊。
我們就寫個小腳本讓電腦自動repo
sync,直到下載成功為止:
#!/bin/sh
count=0
ret=1
while
[
$ret
-ne
0
]
do
repo
sync
ret=$?
count=$((
$count
+
1))
echo
"try
$count,
ret:
$ret"
done
echo
"try
$count,
ret:
$ret"
把上面的內容復制到一個文件里tryrepo.sh
然後修改tryrepo.sh的屬性,開始自動工作吧。第二點早上應該就大功告成了
chmod
a+x
tryrepo.sh
./tryrepo.sh
2.
編譯android,
生成SDK
make
sdk
漫長的等待之後,SDK生成了,在目錄:mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\
在linux下面可以直接運行mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\tools\android
就可以看到熟悉的android
emulator啟動界面。
如果想在windows
XP下使用這個SDK和emulator,
最簡單的方法是:
(1)自己下載一個最新的windows版本的android
2.0
SDK。
(2)把mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\下的東西復制到windows版SDK的platforms下。
(3)
然後把platforms下android-2.0下tools目錄下的幾個.exe文件復制到自己編譯的SDK目錄下的tools目錄下。

7. 如何編譯ESP8266 SDK

打開對應常式中弊沖的gen_misc.sh

gen_misc.bat:
linux系統下(例如ubuntu):
修改sdk(esp8266_rtos_sdk)所在亂簡的路徑,和編譯後要保存的bin文件路徑(esp8266_bin)
如下所示:
$export
sdk_path=~/esp8266_rtos_sdk
$export
bin_path=~/esp8266_bin
然後--------------------------------------------------------------------
執行編譯嘩卜褲gen_misc.sh:
先加執行許可權,然後編譯
for
linux:
chmod
777
gen_misc.sh
./gen_misc.sh

8. SDK的編譯命令

直接運行make或make install
里邊有source和tools目錄,里邊有沒有新生成的文件?

閱讀全文

與sdk工程編譯相關的資料

熱點內容
大眾點評伺服器怎麼老卡頓 瀏覽:554
javavector與list的區別 瀏覽:313
java初始化類數組 瀏覽:302
java字元串轉換成json對象 瀏覽:647
android非阻塞socket 瀏覽:358
編譯系統概念 瀏覽:450
天眼通app能做什麼 瀏覽:555
魅族手機怎麼加密圖庫 瀏覽:8
rpa編譯器 瀏覽:570
車載雲伺服器記錄 瀏覽:738
四川金星壓縮機製造有限公司 瀏覽:53
移動平台圖片壓縮演算法 瀏覽:35
銀行項目java 瀏覽:569
怎樣將pdf轉換為ppt 瀏覽:595
純凈伺服器怎麼開服 瀏覽:286
比澤爾壓縮機如何換油 瀏覽:818
編譯鏈接如何生成exe 瀏覽:74
jre編譯運行環境 瀏覽:271
怎麼解壓鏡像系統 瀏覽:190
程序員求助國企 瀏覽:838