方法/步驟 1 1)首先,下載android SDK.介紹一種非常簡(jiǎn)單的方法,一并下載eclipse.在百度中輸入android SDK,進(jìn)入搜索界面。選中第一條。2)如果你已經(jīng)有eclipse,你可以直接在eclipse中進(jìn)行android SDK插件的安裝。方法就是點(diǎn)擊上面菜單里的help,選擇install new software進(jìn)行添加SDK。具體方法見經(jīng)驗(yàn)如何在eclipse中添加android SDk。2 進(jìn)入下載界面后,選擇適合自己電腦的SDK進(jìn)行下載。這里下載的是android開發(fā)工具,非常的簡(jiǎn)單實(shí)用,不需要我么重新下載eclipse,在這個(gè)下載包中會(huì)自帶一個(gè)eclipse FOR android的develop工具,我們直接在里面就可以進(jìn)行android的開發(fā)。3 下載完成后解壓,解壓后我們進(jìn)入文件名為eclipse的文件夾中。點(diǎn)擊eclipse應(yīng)用程序,運(yùn)行。運(yùn)行如圖,和我們常用的eclipse是不一樣的因?yàn)檫@個(gè)是android的開發(fā)工具,只適用于開發(fā)android。里面有好的插件已經(jīng)提供給我們,不需要再進(jìn)行安裝。4 進(jìn)入eclipse界面后,開始新建android項(xiàng)目。輸入新建項(xiàng)目名,如果沒(méi)有特殊要求,點(diǎn)擊next一直至最后完成。開始的配置只是一個(gè)大體的框架的構(gòu)建,這些我們可以以后進(jìn)行修改,最總要的還是代碼的編寫。5 所有配置都完成后就可以開始進(jìn)行android的開發(fā)了。進(jìn)行android開發(fā)的時(shí)候建議不要用拖拽控件的方式,建議直接編寫代碼。java環(huán)境變量配置 這里順便介紹一下java環(huán)境變量的配置。 1)首先打開環(huán)境變量的界面,添加一個(gè)JAVA_HOME的值。右擊計(jì)算機(jī)屬性,在左側(cè)有高級(jí)設(shè)置,進(jìn)入后就會(huì)看見環(huán)境變量選項(xiàng)了。 2)在系統(tǒng)變量中建立java_home,將你的java SDK所在的路徑放在里面。建立classpath。同樣在系統(tǒng)變量中新建一個(gè)classpath,在下面輸入.;即可,不用輸入其他的值。運(yùn)行cmd,測(cè)試。按win+R打開命令面板,輸入cmd,進(jìn)入后輸入java -version然后回車,接著輸入javac,回車,看結(jié)果是否與下圖相同。這里需要注意的是java -version的java后面是有空格的。

創(chuàng)新互聯(lián)專注于密山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供密山營(yíng)銷型網(wǎng)站建設(shè),密山網(wǎng)站制作、密山網(wǎng)頁(yè)設(shè)計(jì)、密山網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造密山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供密山網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
用c++寫安卓手機(jī)軟件的方法:
安裝ndk,使用純c++開發(fā)安卓程序,下邊是詳細(xì)的步驟與說(shuō)明:
1、編寫入口函數(shù)
android_main為入口函數(shù),和C++中的main函數(shù)是一樣的。這里創(chuàng)建CELLAndroidApp的對(duì)象,直接調(diào)用main函數(shù)。
void?android_main(struct?android_app*?state)
{
CELLAndroidApp????app(state);
app.main(0,0);
}
2.繪制類的實(shí)現(xiàn)說(shuō)明
protected:
EGLConfig????????_config;
EGLSurface???????_surface;
EGLContext???????_context;
EGLDisplay???????_display;
android_app*?????_app;
int??????????????_width;
int??????????????_height;
部分參數(shù)說(shuō)明:
_surface:用于繪制圖形,相當(dāng)于windows繪圖中的位圖
_context:可以看做是opengl對(duì)象
_display:用于繪圖的設(shè)備上下文,類似于windows繪圖中的dc
3.構(gòu)造函數(shù)說(shuō)明
CELLAndroidApp(android_app*?app):_app(app) ?????{ ?????????_surface????=????0; ?????????_context????=????0;? ?????????_display????=????0; ?????????_width????????=????64; ?????????_height????????=????48; ?????????app-userData????????=????this;?//用戶數(shù)據(jù) ?????????app-onAppCmd?????????=?????handle_cmd;?//窗口的創(chuàng)建銷毀等 ?????????app-onInputEvent?????=????handle_input;?//回調(diào)函數(shù) ?????}?
值得注意的是,這里的app中的userData,傳入用戶數(shù)據(jù),這里直接傳入this,onAppCmd傳入的handle_cmd回調(diào)函數(shù),onInputEvent傳入的事handle_input回調(diào)函數(shù)
4.類中函數(shù)main()說(shuō)明
virtual????void?????main(int?argc,char**?argv)
{
int?ident;
int????events;
android_poll_source*?source;
while?(true)
{????????
while?((ident?=?ALooper_pollAll(0,?NULL,?events,?(void**)source))?=?0)?
{
if?(source?!=?NULL)
source-process(_app,?source);?//有觸摸事件,調(diào)用input函數(shù),相當(dāng)于dispatchmessage
if?(_app-destroyRequested?!=?0)
return;
}
render();
}
}
5.調(diào)用render()函數(shù),繪制圖形。
6.初始化設(shè)備函數(shù)initDevice()
virtual?void?????initDevice()
{
const?EGLint?attribs[]?=
{
EGL_SURFACE_TYPE,?EGL_WINDOW_BIT,
EGL_BLUE_SIZE,?8,?
EGL_GREEN_SIZE,?8,
EGL_RED_SIZE,?8,
EGL_NONE
};
EGLint?????format;
EGLint????numConfigs;
_display????=????eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(_display,?0,?0);
eglChooseConfig(_display,?attribs,?_config,?1,?numConfigs);?
eglGetConfigAttrib(_display,?_config,?EGL_NATIVE_VISUAL_ID,?format);
ANativeWindow_setBuffersGeometry(_app-window,?0,?0,?format);?
_surface????=?????eglCreateWindowSurface(_display,?_config,?_app-window,?NULL);
#if?0
EGLint?contextAtt[]?=?{?EGL_CONTEXT_CLIENT_VERSION,?2,?EGL_NONE,?EGL_NONE?};
_context?????=?????eglCreateContext(_display,?_config,?0,?contextAtt);
#else
_context?????=?????eglCreateContext(_display,?_config,?0,?0);?
#endif
if?(eglMakeCurrent(_display,?_surface,?_surface,?_context)?==?EGL_FALSE)
{
LOGW("Unable?to?eglMakeCurrent");?
return;
}
eglQuerySurface(_display,?_surface,?EGL_WIDTH,?_width);?
eglQuerySurface(_display,?_surface,?EGL_HEIGHT,?_height);
onCreate();
//?Initialize?GL?state.
glHint(GL_PERSPECTIVE_CORRECTION_HINT,?GL_FASTEST);?
glEnable(GL_CULL_FACE);
glShadeModel(GL_SMOOTH);
glDisable(GL_DEPTH_TEST);
glViewport(0,0,_width,_height);
glOrthof(0,_width,_height,0,-100,100);
7.繪制函數(shù)render()
virtual????void?????render()
{
if(_display?==?0)
{
return;
}
glClearColor(0,0,0,?1);?
glClear(GL_COLOR_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);?
if(g_arVertex.size()?=?2)
{
glColor4f(1,1,1,1);?
glVertexPointer(3,GL_FLOAT,0,g_arVertex[0]);?
glDrawArrays(GL_LINE_STRIP,0,g_arVertex.size());
}
eglSwapBuffers(_display,_surface);?//雙緩存的交換緩沖區(qū)
}
8.編譯程序,將程序?qū)氲侥M器中,最終運(yùn)行的效果圖如下:
android上現(xiàn)在有兩個(gè)方向,一個(gè)是基于SDK的開發(fā),主要是
用JAVA,另外一個(gè)就是NDK的開發(fā),主要語(yǔ)言就是C、C++,C,C++可以再在android中做第三方的開發(fā),人才急缺,主要是將一些功能本地化。
開發(fā)Android APP可以使用Java語(yǔ)言和C語(yǔ)言。
Java是一種編程語(yǔ)言,被特意設(shè)計(jì)用于互聯(lián)網(wǎng)的分布式環(huán)境。Java具有類似于C++語(yǔ)言的“形式和感覺(jué)”,但它要比C++語(yǔ)言更易于使用,而且在編程時(shí)徹底采用了一種“以對(duì)象為導(dǎo)向”的方式。
使用Java編寫的應(yīng)用程序,既可以在一臺(tái)單獨(dú)的電腦上運(yùn)行,也可以被分布在一個(gè)網(wǎng)絡(luò)的服務(wù)器端和客戶端運(yùn)行。另外,Java還可以被用來(lái)編寫容量很小的應(yīng)用程序模塊或者applet,做為網(wǎng)頁(yè)的一部分使用。applet可使網(wǎng)頁(yè)使用者和網(wǎng)頁(yè)之間進(jìn)行交互式操作。
C語(yǔ)言是一門通用計(jì)算機(jī)編程語(yǔ)言,廣泛應(yīng)用于底層開發(fā)。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。
盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語(yǔ)言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
擴(kuò)展資料:
Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface、簡(jiǎn)稱API)構(gòu)成。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。
在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行。現(xiàn)在Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。Java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的Java平臺(tái)基于Java1.5,最近版本為Java1.9。
C程序是由一組變量或是函數(shù)的外部對(duì)象組成的。 函數(shù)是一個(gè)自我包含的完成一定相關(guān)功能的執(zhí)行代碼段。我們可以把函數(shù)看成一個(gè)“黑盒子”,你只要將數(shù)據(jù)送進(jìn)去就能得到結(jié)果,而函數(shù)內(nèi)部究竟是如何工作的,外部程序是不知道的。
C程序中函數(shù)的數(shù)目實(shí)際上是不限的,如果說(shuō)有什么限制的話,那就是,一個(gè)C程序中必須至少有一個(gè)函數(shù),而且其中必須有一個(gè)并且僅有一個(gè)以main為名,這個(gè)函數(shù)稱為主函數(shù),整個(gè)程序從這個(gè)主函數(shù)開始執(zhí)行。
參考資料來(lái)源:百度百科-Java 編程語(yǔ)言
參考資料來(lái)源:百度百科-c語(yǔ)言
剛好最近我正在學(xué)習(xí)android可以幫到你。
1.JAVA開發(fā)是Android的應(yīng)用部分
2.C/C++語(yǔ)言開發(fā)是Android核心的部分
Android的C語(yǔ)言其實(shí)是指的Android底層的Linux內(nèi)核開發(fā),剛好你是學(xué)習(xí)Linux C語(yǔ)言的這樣就有用武之地。Android的底層是由Linux開發(fā)的,并建立在Linux之上的JAVA虛擬機(jī)來(lái)實(shí)現(xiàn)的。
所以要學(xué)習(xí)Android C語(yǔ)言的開發(fā),建議看看《Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解》著本書講的內(nèi)容都是底層的內(nèi)容,一定要買。不過(guò)JAVA語(yǔ)言的部分也一定要看,因?yàn)镃語(yǔ)言做的驅(qū)動(dòng)最后還是需要被JAVA虛擬機(jī)調(diào)用。
另外要做AndroidC語(yǔ)言開發(fā)還需要注意一下幾點(diǎn):
1.需要購(gòu)買開發(fā)板來(lái)學(xué)習(xí),或者開源的手機(jī),這樣可以直觀的了解驅(qū)動(dòng)的運(yùn)作模式和有效調(diào)試
2.需要下載android源代碼,因?yàn)锳ndroid SDK開發(fā)是不會(huì)用到C語(yǔ)言的
3.android的NDK開發(fā)其實(shí)也是C/C++語(yǔ)言調(diào)用一些函數(shù)來(lái)實(shí)現(xiàn),建議也看
4.最后這個(gè)網(wǎng)址可以去看,多是講底層資料的:;page=end
建議:
1.JAVA還是要看的
2.建議往Android底層硬件開發(fā)走
目前截止到2.3系統(tǒng)來(lái)看,最終安裝的文件仍然是apk格式,界面和系統(tǒng)大多數(shù)功能均使用Java開發(fā),但是稍微高端的應(yīng)用考慮到性能和安全性使用
C/C++是必要的,C/C++最終編譯的so文件就相當(dāng)于Windows下的dll動(dòng)態(tài)庫(kù),需要一個(gè)宿主去加載調(diào)用,我們通過(guò)Java的JNI去調(diào)用這些本地方法,目前從NDK的版本來(lái)看Google不斷增強(qiáng)和開放C++在Android開發(fā)的用處,以保證和iPhone這種使用本地語(yǔ)言開發(fā)出來(lái)的軟件體驗(yàn)度不能差距太大。
網(wǎng)頁(yè)標(biāo)題:c開發(fā)android,c開發(fā)android應(yīng)用 書
網(wǎng)頁(yè)路徑:http://chinadenli.net/article32/dsgdppc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、標(biāo)簽優(yōu)化、App設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)、商城網(wǎng)站、網(wǎng)站收錄
聲明:本網(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)