自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android 2.2開(kāi)發(fā)初學(xué)者快速入門十一大秘技

移動(dòng)開(kāi)發(fā) Android
本文為一位Android入門級(jí)開(kāi)發(fā)者在經(jīng)過(guò)三周學(xué)習(xí)Android收集整理的一份Android 2.2開(kāi)發(fā)初學(xué)者的入門培訓(xùn)教程,從十一個(gè)方面把Android 2.2從配置到疑難解答都告訴給大家。

編者按:本文為一位***線的Android開(kāi)發(fā)者在經(jīng)過(guò)三周學(xué)習(xí)Android收集整理的一份Android 2.2開(kāi)發(fā)初學(xué)者的入門培訓(xùn)教程。文章深淺得當(dāng),對(duì)于剛剛學(xué)習(xí)Android開(kāi)發(fā)的朋友,這是一份非常好的教程。

一、環(huán)境配置和安裝(Android 2.2)

參考《在Eclipse下搭建Android開(kāi)發(fā)環(huán)境教程

1.1 JDK

1.2 SDK

下載地址

1.3 Eclipse 3.5 (Galileo)

下載地址

1.4 ADT 0.9.7

下載地址

1.5 安裝

依次下載,按照文章步驟安裝即可,注意安裝SDK時(shí),需要如下設(shè)置下:

不然更新不下來(lái),那個(gè)鏈接地址被墻了。

二、Android系統(tǒng)架構(gòu)

2.1Linux內(nèi)核(Linux Kernel)

◆ Android運(yùn)行在linux kernel 2.6之上,但是把linux內(nèi)受GNU協(xié)議約束的部分做了取代,這樣在Android的程序可以用于商業(yè)目的。

◆ Linux 內(nèi)核是硬件和軟件層之間的抽象層。 

2.2中間件

◆ 中間件包括兩部分:核心庫(kù)和運(yùn)行時(shí)(libraries & Android runtime)

◆ 核心庫(kù)包括,SurfaceManager 顯示系統(tǒng)管理庫(kù),負(fù)責(zé)把2D或3D內(nèi)容顯示到屏幕;Media Framework 媒體庫(kù),負(fù)責(zé)支持圖像,支持多種視頻和音頻的錄制和回放;SQlite 數(shù)據(jù)庫(kù),一個(gè)功能強(qiáng)大的輕量級(jí)嵌入式關(guān)系數(shù)據(jù)庫(kù);WebKit 瀏覽器引擎等。

◆ Dalvik虛擬機(jī):區(qū)別于Java虛擬機(jī)的是,每一個(gè)Android 應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都有一個(gè)屬于自己的Dalvik 虛擬機(jī),這一點(diǎn)可以讓系統(tǒng)在運(yùn)行時(shí)可以達(dá)到優(yōu)化,程序間的影響大大降低。Dalvik虛擬機(jī)并非運(yùn)行Java字節(jié)碼,而是運(yùn)行自己的字節(jié)碼。

2.3應(yīng)用程序框架(Application Framework)

◆ 豐富而又可擴(kuò)展性的視圖(Views),可以用來(lái)構(gòu)建應(yīng)用程序, 它包括列表(lists),網(wǎng)格(grids), 文本框(text boxes),按鈕( buttons), 可嵌入的web 瀏覽器。

◆ 內(nèi)容提供者(Content Providers)使得應(yīng)用程序可以訪問(wèn)另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫(kù)), 或者共享它們自己的數(shù)據(jù)。

◆ 資源管理器(Resource Manager)提供非代碼資源的訪問(wèn),如本地字符串,圖形,和布局文件( layoutfiles )。

◆ 通知管理器(Notification Manager) 使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。

◆ 活動(dòng)管理器( Activity Manager) 用來(lái)管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。

2.4應(yīng)用程序 (Applications)

◆ Android 系統(tǒng)會(huì)內(nèi)置一些應(yīng)用程序包包括email 客戶端,SMS 短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA 語(yǔ)言編寫的。

Phone Club——51CTO移動(dòng)開(kāi)發(fā)線下技術(shù)沙龍

活動(dòng)日期:1月15日
本期主題:Android應(yīng)用開(kāi)發(fā)技術(shù)進(jìn)階
地點(diǎn):北京市海淀區(qū)中關(guān)村南大街30號(hào)東聯(lián)藝術(shù)工社
演講講師:范懷宇(網(wǎng)易)

#p#

三、Android系統(tǒng)包說(shuō)明

◆android.app :提供高層的程序模型、提供基本的運(yùn)行環(huán)境

◆android.content :包含各種的對(duì)設(shè)備上的數(shù)據(jù)進(jìn)行訪問(wèn)和發(fā)布的類

◆android.database :通過(guò)內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫(kù)

◆android.graphics :底層的圖形庫(kù),包含畫布,顏色過(guò)濾,點(diǎn),矩形,可以將他們直接繪制到屏幕上.

◆android.location :定位和相關(guān)服務(wù)的類

◆android.media :提供一些類管理多種音頻、視頻的媒體接口

◆android.net :提供幫助網(wǎng)絡(luò)訪問(wèn)的類,超過(guò)通常的Java.net.* 接口

◆android.os :提供了系統(tǒng)服務(wù)、消息傳輸、IPC 機(jī)制

◆android.opengl :提供OpenGL 的工具

◆android.provider :提供類訪問(wèn)Android 的內(nèi)容提供者

◆android.telephony :提供與撥打電話相關(guān)的API 交互

◆android.view :提供基礎(chǔ)的用戶界面接口框架

◆android.util :涉及工具性的方法,例如時(shí)間日期的操作

◆android.webkit :默認(rèn)瀏覽器操作接口

◆android.widget :包含各種UI 元素(大部分是可見(jiàn)的)在應(yīng)用程序的屏幕中使用

四、Android項(xiàng)目工程說(shuō)明

◆src:存放java源代碼。

◆gen:存放編譯器自動(dòng)生成的java代碼,這個(gè)目錄下的文件是系統(tǒng)自動(dòng)維護(hù)的。

◆assets: 存放在這個(gè)目錄下的文件,無(wú)論是mp3還是圖片,都會(huì)被打包到發(fā)布包中。

◆res:資源文件目錄,添加到這個(gè)目錄下的文件都會(huì)在gen下的R.ava文件中顯示出來(lái);如果res下存放的資源在應(yīng)用中沒(méi)有使用到,那么在gen下的R.java的文件中就不會(huì)顯示,那么打包的時(shí)候就不會(huì)將這部分資源打包,減少了應(yīng)用的發(fā)布文件大小。

◆drawable:存放圖片文件,注意圖片名稱必須是[a-z0-9_.]組成;drawable目錄下不能分子級(jí)目錄,只能通過(guò)命名方法來(lái)加以區(qū)分。

◆layout:存放與UI相關(guān)的布局文件,都是xml文件。

◆raw:直接復(fù)制到設(shè)備中的任意文件,不會(huì)被編譯,可以放數(shù)據(jù)庫(kù)文件。

◆values: 存放字符串,顏色,數(shù)組等常量數(shù)據(jù)。可以任意命名,但是通常命名:color.xml、strings.xml、array.xml、styles.xml、dimens.xml(定義尺寸值:dimension value)

◆xml:任意的XML文件,在運(yùn)行時(shí)可以通過(guò)調(diào)用Resources.getXML()讀取。

◆參見(jiàn)文獻(xiàn) 。

Phone Club——51CTO移動(dòng)開(kāi)發(fā)線下技術(shù)沙龍

活動(dòng)日期:1月15日
本期主題:Android應(yīng)用開(kāi)發(fā)技術(shù)進(jìn)階
地點(diǎn):北京市海淀區(qū)中關(guān)村南大街30號(hào)東聯(lián)藝術(shù)工社
演講講師:范懷宇(網(wǎng)易)

#p#

五、基本控件

5.1 文本框(TextView)、自動(dòng)完成(AutoCompleteTextView)

自動(dòng)完成的效果和代碼

5.2 編輯框(EditText)

◆android:hint 內(nèi)容為空時(shí)提醒的信息,如“請(qǐng)輸入”

5.3 下拉列表(Spinner)

◆android:entries可以通過(guò)在strings.xml中指定string-array來(lái)設(shè)置選項(xiàng)。

5.4 進(jìn)度條(ProgressBar)

效果和代碼

5.5 拖動(dòng)條(SeekBar)

5.6 評(píng)分條(RatingBar)

5.7 按鈕(Button)、圖片按鈕(ImageButton)

5.8 圖片框 (ImageView)、畫廊(Gallery)

畫廊效果

5.9 日期和時(shí)間(DatePicker、TimePicker)

5.10 單項(xiàng)選擇(RadioGroup、RadioButton)、多項(xiàng)選擇(CheckBox)

5.11 表格 (GridView)、列表(ListView)

GridView

ListView

5.12 對(duì)話框(AlertDialog)、對(duì)話框中的進(jìn)度條(ProgressDialog)

AlertDialog

ProgressDialog

5.13 菜單(Menu)

5.14 提示(Toast)

類似于MessageBox,非模式窗口。如:

  1. Toast.makeText(this, "信息", Toast.LENGTH_SHORT).show(); 

六、布局和容器

6.1幀布局(FrameLayout)

放入其中的所有元素都被放置最左上的區(qū)域,無(wú)法為這些元素指定一個(gè)確切的位置。如果有多個(gè)子元素,那么后邊的子元素的顯示會(huì)重疊在前一個(gè)元素上。

6.2線性布局(LinearLayout)

常用布局,子元素按行或列依次排列。

◆android:layout_gravity是本元素對(duì)父元素的重力方向。

◆android:gravity是本元素所有子元素的重力方向。

6.3絕對(duì)布局(AbsoluteLayout)

可以讓子元素指定準(zhǔn)確的x/y坐標(biāo)值,(0, 0)為左上角,沒(méi)有頁(yè)邊框,允許元素之間互相重疊。

6.4相對(duì)布局(RelativeLayout)

允許子元素指定他們相對(duì)于其它元素或父元素的位置(通過(guò)ID指定)

6.5表格布局(TableLayout)

將子元素的位置分配到行(TableRow)中,注意不會(huì)顯示邊框線也不能夠跨行合并單元格。

例子

6.6選項(xiàng)卡(TabWidget)

例子

Phone Club——51CTO移動(dòng)開(kāi)發(fā)線下技術(shù)沙龍

活動(dòng)日期:1月15日
本期主題:Android應(yīng)用開(kāi)發(fā)技術(shù)進(jìn)階
地點(diǎn):北京市海淀區(qū)中關(guān)村南大街30號(hào)東聯(lián)藝術(shù)工社
演講講師:范懷宇(網(wǎng)易)

#p#

七、常用代碼

7.1在當(dāng)前Activity中啟動(dòng)另外一個(gè)Activity

  1. startActivity(new Intent(this,目標(biāo)Activity.class)); 

7.2從當(dāng)前ContentView從查找控件

  1. (Button)findViewById(R.id.btnAbout) 

R.id.btnAbout指控件id。

7.3獲取屏幕寬高

  1. DisplayMetrics dm = new DisplayMetrics();  
  2. //獲取窗口屬性  
  3. getWindowManager().getDefaultDisplay().getMetrics(dm);  
  4.    
  5. int screenWidth = dm.widthPixels;//320  
  6. int screenHeight = dm.heightPixels;//480 

7.4無(wú)標(biāo)題欄、全屏

  1. //無(wú)標(biāo)題欄  
  2. requestWindowFeature(Window.FEATURE_NO_TITLE);  
  3. //全屏模式  
  4. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
  5. WindowManager.LayoutParams.FLAG_FULLSCREEN); 

注意在setContentView()之前調(diào)用,否則無(wú)效。

7.5注冊(cè)activity

所有用到的Activity都必須在AndroidManifest.xml中注冊(cè),否則會(huì)報(bào)空指針錯(cuò)誤。如:

,注意是包名+類名。

八、Adb命令行

8.1DOS進(jìn)入android-sdk-windows\tools目錄

8.2Linux

登錄linux命令:adb shell

列出當(dāng)前文件:ls

刪除文件:rm 文件名

8.3Sqlite

登錄sqlite命令:sqlite3

8.4Adb命令

列出當(dāng)前有哪些活動(dòng)的模擬器:adb devices

上傳文件:adb push

安裝apk文件:adb install android123.apk

Phone Club——51CTO移動(dòng)開(kāi)發(fā)線下技術(shù)沙龍

活動(dòng)日期:1月15日
本期主題:Android應(yīng)用開(kāi)發(fā)技術(shù)進(jìn)階
地點(diǎn):北京市海淀區(qū)中關(guān)村南大街30號(hào)東聯(lián)藝術(shù)工社
演講講師:范懷宇(網(wǎng)易)

#p#

九、Apk文件破解

9.1獲取apk的資源圖片

直接用 WinRAR打開(kāi),res/drawable直接拖拽出來(lái)即可。

9.2獲取xml文件信息

雖然能用WinRAR看到里面的xml文件,但是xml是經(jīng)過(guò)優(yōu)化的,無(wú)法直接查看,需要使用apktool工具,下載地址

下載apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解壓到同一個(gè)目錄,然后把待破解的apk文件拷貝到同一目錄,DOS進(jìn)入該目錄,輸入:aapt d 91callinfo.apk 91callinfo,這里第四個(gè)參數(shù)為破解完存放的路徑。

9.3反編譯dex獲取Java源代碼

Apktool工具只能反編譯成smali的中間代碼文件,這里需要借助另外一個(gè)開(kāi)源工具:dex2jar,下載地址。這個(gè)工具不能直接翻譯成Java文件,但是可以把dex文件轉(zhuǎn)換成jar文件,然后可以通過(guò)jad工具把jar文件反編譯成Java源文件,如果只是看看源碼的話可以用jd-gui,下載地址 。

dex文件(classes.dex)可以用WinRAR從apk文件中解壓出來(lái)。

十、小技巧

10.1 使用系統(tǒng)的圖標(biāo)

例如調(diào)用系統(tǒng)打電話的圖標(biāo):

  1. <ImageView android:src="@android:drawable/ic_menu_call" 

圖標(biāo)名稱和效果(Android1.5和1.6):

http://since2006.com/android/1.5-drawables.php

http://since2006.com/android/1.6-drawables.php

10.2 讓控件透明,如ImageButton

設(shè)置android:background="@null"

10.3 在layout中直接指定onclick方法

不用手動(dòng)綁定,在layout中設(shè)置

  1. android:onClick=”methodName” 

methodName為對(duì)應(yīng)Activity中的方法,如下格式:(適應(yīng)1.6以上版本)

  1. public void OnClickMethodName(View view){}  

10.4 用PC鍵盤控制模擬器

  

PC鍵盤

模擬器按鍵

說(shuō)明

Home

Home

主頁(yè)

F2

Menu

菜單

ESC

Back

后退

F3

Call

打電話

F4

Hangup

掛斷

F5

Search

搜索

Ctrl+F12

 

橫豎屏切換

10.5 進(jìn)入界面就顯示/隱藏軟鍵盤

在AndroidManifest.xml中設(shè)置activity的

  1. android:windowSoftInputMode="stateHidden" 

10.6 界面可視化布局工具

系統(tǒng)提供可視化布局并不好用,這里推薦一款,布局完后點(diǎn)生成代碼即可:

DroidDraw

10.7 在Eclipse中看Android的源碼

將源代碼拷貝至android-sdk-windows\platforms\android-4\sources下即可。注意源碼版本對(duì)應(yīng)android-4文件夾,這里指Android1.6的源碼。

十一、疑難解答

Q:11.1 用模擬器調(diào)試頻繁連不上,或者報(bào)emulator-5554 disconnected的錯(cuò)誤?

A:Window(窗口) -> Show Views(顯示視圖) -> device -> view menu(視圖菜單)-> Reset adb

Q:11.2 匿名類中如何使用this?

A:classname(類名).this

Q:11.3 程序出錯(cuò)后模擬器上僅顯示應(yīng)用程序遇到問(wèn)題將關(guān)閉怎么辦?

A:可以從LogCat中檢查錯(cuò)誤,默認(rèn)LogCat在DDMS視圖中,可以通過(guò)以下方法調(diào)整到Java視圖與控制臺(tái)并列顯示:點(diǎn)擊Eclipse左下角 ,點(diǎn)開(kāi)后在其他里面找到Android目錄下的LogCat拖拽出來(lái)即可。

本文作者:農(nóng)民伯伯

作者博客:http://www.cnblogs.com/over140/

Phone Club——51CTO移動(dòng)開(kāi)發(fā)線下技術(shù)沙龍

活動(dòng)日期:1月15日
本期主題:Android應(yīng)用開(kāi)發(fā)技術(shù)進(jìn)階
地點(diǎn):北京市海淀區(qū)中關(guān)村南大街30號(hào)東聯(lián)藝術(shù)工社
演講講師:范懷宇(網(wǎng)易)
點(diǎn)擊報(bào)名【編輯推薦】
  1. 在Eclipse下搭建Android開(kāi)發(fā)環(huán)境教程 
  2. 在NetBeans上搭建Android SDK環(huán)境 
  3. 圖文并茂 在MyEclipse 8.6上搭建Android開(kāi)發(fā)環(huán)境 
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2024-08-20 00:00:08

2011-09-14 09:49:41

Android開(kāi)發(fā)

2020-08-16 13:10:46

TensorFlow深度學(xué)習(xí)數(shù)據(jù)集

2011-08-24 17:05:01

Lua

2021-08-05 14:40:45

操作系統(tǒng)UNIXLINUX

2011-01-06 16:00:33

2009-06-05 11:01:07

淘寶Open API入門教程

2011-06-27 14:56:46

Qt Designer

2010-11-24 16:15:09

UI設(shè)計(jì)Windows Pho

2014-03-12 10:11:57

Python設(shè)計(jì)模式

2011-04-12 10:13:24

2019-01-03 10:55:26

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2011-03-02 12:43:40

vsFTPd

2024-05-14 08:49:35

PytestPython測(cè)試框架

2023-10-14 17:21:53

Scala編程

2011-08-17 12:03:36

Objective-C

2009-11-18 09:30:43

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)