亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android2.2快速入門

系統 2058 0

Android2.2快速入門

?

前言

  這是前段時間用于公司Android入門培訓的資料,學習Android三周時間收集整理的,時間倉促,希望能對像我這樣還沒入門就直接上項目的人一點幫助? :)

?

聲明

?

  歡迎轉載,但請保留文章原始出處:)

    博客園:http://www.cnblogs.com

    農民伯伯: http://www.cnblogs.com/over140/

?

正文

一、 ???????????? 環境配置和安裝( Android2.2

參考文章: 這里

1.1 ???? JDK

1.2 ???? SDK

下載地址: http://dl.google.com/android/android-sdk_r06-windows.zip

1.3 ???? Eclipse 3.5 (Galileo)

下載地址:

  http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/R/eclipse-java-galileo-win32.zip

1.4 ???? ADT 0.9.7

下載地址: http://dl.google.com/android/ADT-0.9.7.zip

1.5 ???? 安裝

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

Android2.2快速入門 ?

?

不然更新不下來,那個鏈接地址被墻了。

?

?

二、 ???????????? Android 系統架構

?

?   Android2.2快速入門

    2.1 ?? Linux 內核 (Linux Kernel)

    * Android 運行在 linux kernel 2.6 之上,但是把 linux 內受 GNU 協議約束的部分做了取代,這樣在 Android 的程序可以用于商業目的。

    * Linux 內核是硬件和軟件層之間的抽象層。 ??

    2.2 中間件

    * 中間件包括兩部分:核心庫和運行時 (libraries & Android runtime)

    * 核心庫包括, SurfaceManager 顯示系統管理庫,負責把 2D 3D 內容顯示到屏幕; Media Framework 媒體庫,負責支持圖像,支持多種視頻和音頻的錄制和回放; SQlite 數據庫,一個功能強大的輕量級嵌入式關系數據庫; WebKit 瀏覽器引擎等。

    * Dalvik 虛擬機:區別于 Java 虛擬機的是,每一個 Android 應用程序都在它自己的進程中運行,都有一個屬于自己的 Dalvik 虛擬機,這一點可以讓系統在運行時可以達到優化,程序間的影響大大降低。 Dalvik 虛擬機并非運行 Java 字節碼,而是運行自己的字節碼。

  2.3 ?? 應用程序框架 (Application Framework)

    * 豐富而又可擴展性的視圖( Views ),可以用來構建應用程序, 它包括列表( lists ),網格( grids ), 文本框( text boxes ),按鈕( buttons ), 可嵌入的 web 瀏覽器。

    * 內容提供者( Content Providers )使得應用程序可以訪問另一個應用程序的數據(如聯系人數據庫), 或者共享它們自己的數據。

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

    * 通知管理器( Notification Manager 使得應用程序可以在狀態欄中顯示自定義的提示信息。

    * 活動管理器( Activity Manager 用來管理應用程序生命周期并提供常用的導航回退功能。

  2.4 ?? 應用程序 (Applications)

??? * Android 系統會內置一些應用程序包包括 email 客戶端, SMS 短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用 JAVA 語言編寫的。

?

三、 ???????????? Android 系統包說明

android.app :提供高層的程序模型、提供基本的運行環境

android.content :包含各種的對設備上的數據進行訪問和發布的類

android.database :通過內容提供者瀏覽和操作數據庫

android.graphics :底層的圖形庫,包含畫布,顏色過濾,點,矩形,可以將他們直接繪制到屏幕上.

android.location :定位和相關服務的類

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

android.net :提供幫助網絡訪問的類,超過通常的Java.net.* 接口

android.os :提供了系統服務、消息傳輸、IPC 機制

android.opengl :提供OpenGL 的工具

android.provider :提供類訪問Android 的內容提供者

android.telephony :提供與撥打電話相關的API 交互

android.view :提供基礎的用戶界面接口框架

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

android.webkit :默認瀏覽器操作接口

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

?

四、 ???????????? Android 項目工程說明

Android2.2快速入門

?

  src ??????? 存放 java 源代碼。

  gen ?????? 存放編譯器自動生成的 java 代碼,這個目錄下的文件是系統自動維護的。

  assets ? 存放在這個目錄下的文件,無論是 mp3 還是圖片,都會被打包到發布包中。

  res ????? 資源文件目錄,添加到這個目錄下的文件都會在 gen 下的 R.ava 文件中顯示出來;如果 res 下存放的資源在應用中沒有使用到,那么在 gen 下的 R.java 的文件中就不會顯示,那么打包的時候就不會將這部分資源打包,減少了應用的發布文件大小。

  drawable :存放圖片文件,注意圖片名稱必須是 [ a-z0-9_. ] 組成; drawable 目錄下不能分子級目錄,只能通過命名方法來加以區分。

  layout :存放與 UI 相關的布局文件,都是 xml 文件。

  raw ?????? 直接復制到設備中的任意文件,不會被編譯,可以放數據庫文件。

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

  xml ?????? 任意的 XML 文件,在運行時可以通過調用 Resources.getXML() 讀取。

?

參見 http://www.inandroid.cn/bbs/thread-1401-1-1.html

?

五、 ???????????? 基本控件

1 ????

2 ????

3 ????

4 ????

5 ????

5.1 ???? 文本框 (TextView) 、自動完成 ( AutoCompleteTextView )

自動完成的效果和代碼: http://android.yaohuiji.com/archives/390

5.2 ???? 編輯框 (EditText)

  android:hint ???? 內容為空時提醒的信息,如“請輸入”

5.3 ???? 下拉列表 (Spinner)

  android:entries ??????? 可以通過在 strings.xml 中指定 string-array 來設置選項。

5.4 ???? 進度條 (ProgressBar)

效果和代碼: http://www.eoeandroid.com/viewthread.php?tid=1081

5.5 ???? 拖動條 (SeekBar)

5.6 ???? 評分條 (RatingBar)

?

?

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

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

畫廊效果: http://android.yaohuiji.com/archives/565

5.9 ???? 日期和時間 (DatePicker TimePicker)

5.10? 單項選擇 (RadioGroup RadioButton) 、多項選擇 (CheckBox)

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

  GridView http://blog.csdn.net/hellogv/archive/2009/09/18/4567095.aspx

  ListView http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html

5.12? 對話框 ( AlertDialog ) 、對話框中的進度條 (ProgressDialog)

  AlertDialog http://android.yaohuiji.com/archives/655

  ProgressDialog http://aina-hk55hk.iteye.com/blog/679134

5.13? 菜單 (Menu)

5.14? 提示 (Toast)

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

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

?

六、 ???????????? 布局和容器

  6.1 ?? 幀布局 (FrameLayout)

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

  6.2 ?? 線性布局 (LinearLayout)

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

    android:layout_gravity 是本元素對父元素的重力方向。

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

  6.3 ?? 絕對布局 (AbsoluteLayout)

可以讓子元素指定準確的 x/y 坐標值, (0, 0) 為左上角,沒有頁邊框,允許元素之間互相重疊。

  6.4 ?? 相對布局 (RelativeLayout)

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

  6.5 ?? 表格布局 ( TableLayout )

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

例子: http://hi.baidu.com/hoyah/blog/item/d9db34275d6f361a8b82a171.html

  6.6 ?? 選項卡 ( TabWidget)

?????? Android2.2快速入門

?????? 例子: http://fatkun.com/2010/06/android-tabwidget.html

?

七、 ???????????? 常用代碼

  7.1 ?? 在當前 Activity 中啟動另外一個 Activity

???????? startActivity(new Intent(this, 目標 Activity.class));

?

  7.2 ?? 從當前 ContentView 從查找控件

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

    R.id.btnAbout 指控件 id

?

  7.3 ?? 獲取屏幕寬高

DisplayMetrics dm = new DisplayMetrics();

// 獲取窗口屬性

getWindowManager().getDefaultDisplay().getMetrics(dm);

int screenWidth =?dm.widthPixels;//320

int screenHeight = dm.heightPixels;//480

?

  7.4 ?? 無標題欄、全屏

// 無標題欄

requestWindowFeature(Window.FEATURE_NO_TITLE);

// 全屏模式

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

注意在 setContentView() 之前調用,否則無效。

?

  7.5 ?? 注冊 activity

???????? 所有用到的 Activity 都必須在 AndroidManifest.xml 中注冊,否則會報空指針錯誤。如: <activity android:name="com.common.TestView"> ,注意是包名 + 類名。

?

八、 ???????????? Adb 命令行

  8.1 ?? DOS 進入 android-sdk-windows\tools 目錄

  8.2 ?? Linux

登錄 linux 命令: adb shell

列出當前文件 ls

刪除文件 rm 文件名

  8.3 ?? Sqlite

登錄 sqlite 命令: sqlite3

  8.4 ?? Adb 命令

列出當前有哪些活動的模擬器: adb devices

上傳文件: adb push

安裝 ap k文件:adb install android123.apk

?

九、 ???????????? Apk 文件破解

  9.1 ?? 獲取 apk 的資源圖片

???????? 直接用 WinRAR 打開, res/drawable 直接拖拽出來即可。

?

  9.2 ?? 獲取 xml 文件信息

??? 雖然能用 WinRAR 看到里面的 xml 文件,但是 xml 是經過優化的,無法直接查看,需要使用 apktool 工具,下載地址: https://code.google.com/p/android-apktool/

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

?

  9.3 ?? 反編譯 dex 獲取 Java 源代碼

???????? Apktool 工具只能反編譯成 smali 的中間代碼文件,這里需要借助另外一個開源工具: dex2jar ,下載地址: http://code.google.com/p/dex2jar/ 。這個工具不能直接翻譯成 java 文件,但是可以把 dex 文件轉換成 jar 文件,然后可以通過 jad 工具把 jar 文件反編譯成 Java 源文件,如果只是看看源碼的話可以用 jd-gui ,下載地址:

http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip

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

?

十、 ???????????? 小技巧

  10.1 ???????? 使用系統的圖標

???????? 例如調用系統打電話的圖標:

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

圖標名稱和效果 (Android1.5 1.6)

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

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

?

  10.2 ???????? 讓控件透明,如 ImageButton

???????? 設置 android:background="@null"

?

  10.3 ???????? layout 中直接指定 onclick 方法

???????? 不用手動綁定,在 layout 中設置 android:onClick=”methodName” methodName 為對應 Activity 中的方法,如下格式: public void methodName (View view){} (適應 1.6 以上版本)

?

  10.4 ???????? PC 鍵盤控制模擬器

PC 鍵盤

模擬器按鍵

說明

Home

Home

主頁

F2

Menu

菜單

Esc

Back

后退

F3

Call

打電話

F4

Hangup

掛斷

F5

Search

搜索

Ctrl+F12

?

橫豎屏切換

?


  10.5 ???????? 進入界面就顯示 / 隱藏軟鍵盤

???????? AndroidManifest.xml 中設置 activity

???????? android:windowSoftInputMode="stateHidden"

?

  10.6 ???????? 界面可視化布局工具

???????? 系統提供可視化布局并不好用,這里推薦一款,布局完后點生成代碼即可:

???????? DroidDraw http://www.droiddraw.org/

?

  10.7 ????????? Eclipse 中看 Android 的源碼

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

?

十一、 ????? Q & A

  11.1 ????????? 用模擬器調試頻繁連不上,或者報 emulator-5554 disconnected 的錯誤?

???????? ???????? Window( 窗口 ) -> Show Views( 顯示視圖 ) -> device -> view menu( 視圖菜單 )

-> Reset adb

?

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

???????? classname( 類名 ).this

?

  11.3 ????????? 程序出錯后模擬器上僅顯示應用程序遇到問題將關閉怎么辦?

可以從 LogCat 中檢查錯誤,默認 LogCat DDMS 視圖中,可以通過以下方法調整到 Java 視圖與控制臺并列顯示:點擊 Eclipse 左下角 ,點開后在其他里面找到 Android 目錄下的 LogCat 拖拽出來即可。

Android2.2快速入門


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久国产精品99精品国产 | 欧美宗合网 | 亚洲综合精品成人啪啪 | 国产一区二区三区不卡免费观看 | 四虎精品免费永久在线 | 色综合视频 | 亚洲天天做日日做天天看2018 | 一区在线看 | 婷婷综合激情五月中文字幕 | 亚洲十欧美十日韩十国产 | 四月婷婷七月婷婷综合 | 福利视频999 | 久色99| 亚洲香蕉久久一区二区三区四区 | 男人天堂999 | 午夜人成 | 干欧美女人 | 欧美一区二区三区播放 | 午夜免费福利在线观看 | 亚洲精彩视频在线观看 | 色骚综合 | 免费毛片a | 伊人成人在线观看 | 在线观看精品视频一区二区三区 | 中文字幕一区二区三区免费看 | 国产精品久久久久久久久鸭 | 国产午夜亚洲精品久久www | 亚洲综合另类 | 精品一区二区久久久久久久网精 | 亚洲精品一区二区手机在线 | 一级女性全黄生活片看看 | 日韩一区二区三区在线视频 | 日日爽夜夜操 | 日韩在线天堂 | 成年女人18级毛片毛片免费观看 | 国产一级毛片夜一级毛片 | 96影院| 久久国产精品偷 | 一级骚片| 精品在线99| 天天做人人爱夜夜爽2020 |