多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開源 > 綜合技術(shù) > Android基礎(chǔ)筆記(一)

Android基礎(chǔ)筆記(一)

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-04-09 08:31:29 閱讀次數(shù):2751次

  • 1G - 5G的介紹
  • Android的操作系統(tǒng)的介紹
  • Android版本
  • Android系統(tǒng)的架構(gòu)
  • 兩種虛擬機(jī)的不同
  • ART模式
  • 摹擬器的簡(jiǎn)介
  • SDK目錄
  • Android工程目錄結(jié)構(gòu)
  • 打包的進(jìn)程
  • ADB經(jīng)常使用指令
  • 案例電話撥號(hào)器
  • 4種點(diǎn)擊事件
  • Android的經(jīng)常使用布局
  • Andriod中的單位

這里寫圖片描述

1G - 5G的介紹

1st - Generation
代表作是:大哥大,只能進(jìn)行語(yǔ)音通訊,不能夠發(fā)短信、更不能上網(wǎng)。
2nd - Generation
代表作是:小靈通,可以收發(fā)短信、可以上網(wǎng),但是速度幾10Kps,而且不能在通話時(shí)使用。
3rd - Generation
速率1般在幾百Kbps,并可以在通話的時(shí)候使用,保持在線,移動(dòng)互聯(lián)時(shí)期到來(lái)。
4th - Generation(LTE - Long Time Evolution - 長(zhǎng)時(shí)間的進(jìn)化)
速率到達(dá)100Kbps以上,可以在線觀看高清視頻,上傳下載大批量數(shù)據(jù)。
5th - Generation
速度可到達(dá)1Gbps以上,幾近滿足人們的所有需求。

它們之間最大的區(qū)分是:速率的不同

Android的操作系統(tǒng)的介紹

Android是由安迪-魯賓開發(fā)的,1開始只是1個(gè)作為智能相機(jī)的系統(tǒng),隨著手機(jī)市場(chǎng)的擴(kuò)大轉(zhuǎn)向手機(jī)操作系統(tǒng)。

Android名稱:安迪-魯賓非常喜歡1款游戲里面的1個(gè)大瓢蟲。

Android的Logo來(lái)源 :要求無(wú)性別、種族輕視,設(shè)計(jì)師在上廁所時(shí)看到廁所門上的標(biāo)識(shí),產(chǎn)生的靈感。

Android版本

幾個(gè)比較穩(wěn)定和重要的版本

版本 API 特性
2.3.3 10 增加NFC支付功能,近場(chǎng)感應(yīng)功能
3.0 11 專為平板電腦和大屏幕裝備優(yōu)化
4.1.2 16

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

這里寫圖片描述

4層架構(gòu):
① Applications 原生的利用程序:閱讀器、桌面、聯(lián)系人等
② Application Framework 中間介,java代碼調(diào)用底層c代碼,提供各種管理器
③ Libraries(c代碼庫(kù)),Android Runtime(Dalvik VM、Libraries C)
④ 底層Linux(安全管理、內(nèi)存管理、進(jìn)程管理、電源管理、硬件驅(qū)動(dòng))

注意:Dalvik VM:虛擬機(jī),android代碼運(yùn)行在此虛擬機(jī)

兩種虛擬機(jī)的不同

為何會(huì)有兩種虛擬機(jī)?
Sun公司的版權(quán)問(wèn)題
傳統(tǒng)的JVM
編寫.java文件 ->編譯為.class文件 -> 打包成 .jar文件(將java源碼編譯為class文件,然后將1組class打包成jar)
基于棧結(jié)構(gòu),棧存儲(chǔ)于內(nèi)存中,所以需要內(nèi)存空間
Dalvik VM
編寫.java文件 -> 編譯為 .class文件 -> 打包成.dex文件 -> 打包成.apk文件(將1組class編譯為1個(gè)dex文件,然后有的平臺(tái)為了更高的效力會(huì)將1個(gè)dex轉(zhuǎn)換成odex文件,將N多個(gè)class文件編譯為1個(gè)dex,這樣履行效力會(huì)比較快,更合適在移動(dòng)平臺(tái)運(yùn)行)
基于寄存器的結(jié)構(gòu),寄存器在CPU中,所以用到CPU的空間。

請(qǐng)看下圖,在JVM和DVM中不同的打包結(jié)構(gòu):

ART模式

 ART模式通過(guò)在安裝利用程序時(shí),自動(dòng)對(duì)程序進(jìn)行代碼預(yù)讀取編譯,讓程序直接編譯成機(jī)器語(yǔ)言,免去了Dalvik模式要時(shí)時(shí)轉(zhuǎn)換代碼,實(shí)現(xiàn)高效力、省電、占用更低的系統(tǒng)內(nèi)存、手機(jī)運(yùn)行流暢。
 
 但凡事總有正反兩面,ART在解決了該問(wèn)題的同時(shí),同時(shí)也有如:會(huì)占用略高1些的存儲(chǔ)空間、安裝程序時(shí)要相比普通Dalvik模式要長(zhǎng)1些時(shí)間來(lái)實(shí)現(xiàn)預(yù)編譯。
 
 ART模式是典型的以空間換時(shí)間的解決案例。

9 摹擬器的簡(jiǎn)介

裝備的常見分辨率

名稱 分辨率 說(shuō)明
VGA 480*640 標(biāo)準(zhǔn)的視頻接口分辨率
QVGA 240*320 只有VGA的4分之1
HVGA 480*320 只有VGA的2分之1,使用的比較少了,開發(fā)使用
WVGA 480*800
FWVGAQ 480:854

Android開發(fā)經(jīng)常使用的適配分辨率:
480 * 800
1280 * 800
VM Heap
虛擬機(jī)的內(nèi)存,每個(gè)利用程序所占內(nèi)存
Snapshot
快照,類似win7的睡眠作用。關(guān)閉摹擬器時(shí),會(huì)保存當(dāng)前摹擬器的1些活動(dòng)狀態(tài),數(shù)據(jù),下次啟動(dòng)會(huì)加載這些信息,啟動(dòng)速度比較快。但是這個(gè)快照有bug,不推薦勾選。
CPU
arm、intel,如果下載intel的加速器才能選擇
要使用intel加速器,需要安裝加速器,并且下載相應(yīng)鏡像文件
Back camera
背部攝像頭
Webcam
使用電腦的攝像頭
VM Heap
DVM的默許大小,單位是M, 每個(gè)利用程序所占內(nèi)存
Internal Storage
手機(jī)內(nèi)部存儲(chǔ)大小
Use host GPU
用電腦的顯卡處理器,顯卡的cpu,電腦獨(dú)立顯卡,可以勾選,這樣摹擬器會(huì)快點(diǎn)。集成顯卡會(huì)花屏
RAM
相當(dāng)于電腦的內(nèi)存條,斷點(diǎn)數(shù)據(jù)丟失
ROM
只讀存儲(chǔ)器,相當(dāng)于電腦的1塊硬盤,斷點(diǎn)數(shù)據(jù)不丟失

SDK目錄

add-ons
寄存高級(jí)利用的API的文件
build-tools
構(gòu)建工具
docs
開發(fā)文檔
extras
寄存依賴的第3方的包
platforms
各個(gè)平臺(tái)的文件
sources
API的源代碼文件
system-images
系統(tǒng)的鏡像文件
tools
工具文件

Android工程目錄結(jié)構(gòu)

src
源代碼
gen
系統(tǒng)自動(dòng)生成的文件
R.java中記錄了項(xiàng)目中的各種資源,相當(dāng)于1個(gè)字典
Android 4.2
當(dāng)前工程所使用的SDK
assets
資產(chǎn)目錄
不會(huì)在R文件中注冊(cè),原封不動(dòng)的打包到APK中
bin
編譯后的2進(jìn)制文件
包括class、資源文件、dex、apk、清單文件等
libs
工程中所使用的庫(kù)
res
系統(tǒng)資源,所有文件都會(huì)在R文件生成資源ID

① drawable:圖片資源

  1. drawable-hdpi:高分辨率的圖片目錄
  2. drawable-ldpi:低分辨率的圖片目錄
  3. drawable-mdpi:中分辨率的圖片目錄
  4. drawable-xhdpi:大分辨率的圖片目錄
  5. drawable-xxhdpi:超大分辨率的圖片目錄
② layout:界面布局
③ menu:菜單
④ values:字符串、樣式等數(shù)據(jù)
⑤ anim:動(dòng)畫文件
⑥ raw:原生文件

AndroidManifest.xml
① Android中的4大組件(Acticity、ContentProvider、BroadcaseReceiver、Service)都需要在該文件中注冊(cè)
② 程序所需的權(quán)限也需要在此文件中聲明

打包的進(jìn)程

使用aapt(application android package tools)工具打包

編譯 -> 打包 -> 簽名 -> adb -> 部署得手機(jī)上

這里寫圖片描述

ADB經(jīng)常使用指令

顯示已連接的裝備
adb devices
顯示內(nèi)容:裝備名,狀態(tài)(device、offline)
導(dǎo)入文件得手機(jī)
adb push <手機(jī)目標(biāo)路徑>
:把電腦上的文件推送到摹擬器里
從手機(jī)導(dǎo)出文件
adb pull <手機(jī)源文件路徑>
:把摹擬器中的文件拉到電腦
安裝程序
adb install

(案例)電話撥號(hào)器

// 3. 找到edit控件 EditText et_number = (EditText) findViewById(R.id.et_number); // 4. 獲得到電話號(hào)碼 String number = et_number.getText().toString().trim(); if (TextUtils.isEmpty(number)) { // 土司 Toast.makeText(MainActivity.this, "不能為空", Toast.LENGTH_LONG) .show(); return; } // 5. 撥打電話 底層原理:socket通訊 Intent intent = new Intent(); // 創(chuàng)建1個(gè)意圖:想干甚么事 intent.setAction(Intent.ACTION_CALL); // 6. 設(shè)置撥打電話的數(shù)據(jù) // Uri 包括了 Url intent.setData(Uri.parse("tel:" + number)); // Uri:統(tǒng)1資源標(biāo)識(shí)符,Url:統(tǒng)1資源定位符 // 7.開啟意圖 startActivity(intent);

16 4種點(diǎn)擊事件

使用內(nèi)部類實(shí)現(xiàn)OnClickListener接口來(lái)實(shí)現(xiàn)

private class MyButton implements OnClickListener { @Override public void onClick(View v) { // 3. 找到edit控件 EditText et_number = (EditText) findViewById(R.id.et_number); // 4. 獲得到電話號(hào)碼 String number = et_number.getText().toString().trim(); if (TextUtils.isEmpty(number)) { // 土司 Toast.makeText(MainActivity.this, "不能為空", Toast.LENGTH_LONG) .show(); return; } // 5. 撥打電話 底層原理:socket通訊 Intent intent = new Intent(); // 創(chuàng)建1個(gè)意圖:想干甚么事 intent.setAction(Intent.ACTION_CALL); // 6. 設(shè)置撥打電話的數(shù)據(jù) // Uri 包括了 Url intent.setData(Uri.parse("tel:" + number)); // Uri:統(tǒng)1資源標(biāo)識(shí)符,Url:統(tǒng)1資源定位符 // 7.開啟意圖 startActivity(intent); } }

通過(guò)匿名內(nèi)部類來(lái)實(shí)現(xiàn)

// 實(shí)現(xiàn)點(diǎn)擊事件的第2種方式:匿名內(nèi)部類 btn_call.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { callPhone(); } });

由類文件去實(shí)現(xiàn)監(jiān)聽接口

public class MainActivity extends Activity implements OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 1. 找到按鈕 Button btn1 = (Button) findViewById(R.id.button1); Button btn2 = (Button) findViewById(R.id.button2); Button btn3 = (Button) findViewById(R.id.button3); Button btn4 = (Button) findViewById(R.id.button4); Button btn5 = (Button) findViewById(R.id.button5); // 設(shè)置點(diǎn)擊事件的第3種方式 btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); btn4.setOnClickListener(this); btn5.setOnClickListener(this); } private void callPhone() { // 3. 找到edit控件 EditText et_number = (EditText) findViewById(R.id.et_number); // 4. 獲得到電話號(hào)碼 String number = et_number.getText().toString().trim(); // 5. 撥打電話 底層原理:socket通訊 Intent intent = new Intent(); // 創(chuàng)建1個(gè)意圖:想干甚么事 intent.setAction(Intent.ACTION_CALL); // 6. 設(shè)置撥打電話的數(shù)據(jù) // Uri 包括了 Url intent.setData(Uri.parse("tel:" + number)); // Uri:統(tǒng)1資源標(biāo)識(shí)符,Url:統(tǒng)1資源定位符 // 7.開啟意圖 startActivity(intent); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: callPhone(); break; case R.id.button2: break; case R.id.button3: break; case R.id.button4: break; case R.id.button5: break; default: break; } } }

在布局文件增加onclick屬性,并在代碼中添加對(duì)應(yīng)的方法,并且傳入View參數(shù)

在布局文件中注冊(cè)點(diǎn)擊事件

<Button android:onClick="click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/et_number" android:layout_below="@+id/et_number" android:layout_marginTop="32dp" android:text="撥打" />

在代碼中增加對(duì)應(yīng)的方法

// 按鈕的第4種點(diǎn)擊事件,原理:利用的反射技術(shù) // 第4種方式缺點(diǎn):稀里糊涂 public void click(View v) { callPhone(); }

Android的經(jīng)常使用布局

線性布局
水平、垂直顯示,如果有多個(gè)組件,超越屏幕大小,超越部份就不顯示
可以通過(guò)android:orientation來(lái)定義方向
android:orientation=“horizontal”表示水平方向
android:orientation=“vertical”表示垂直方向
相對(duì)布局
相對(duì)布局是實(shí)際布局中最經(jīng)常使用的布局方式之1。
相對(duì)布局在xml文件中使用來(lái)定義。
相對(duì)布局可以設(shè)置某1個(gè)視圖相對(duì)其他視圖的位置,這些位置可以包括上下左右等,因此相較于其他的布局方式而言具有很大的靈活性。
RelativeLayout的經(jīng)常使用屬性有以下1些: 第1類:屬性值為true或false   android:layout_centerHrizontal 水平居中   android:layout_centerVertical 垂直居中   android:layout_centerInparent 相對(duì)父元素完全居中   android:layout_alignParentBottom 貼緊父元素的下邊沿   android:layout_alignParentLeft 貼緊父元素的左側(cè)緣   android:layout_alignParentRight 貼緊父元素的右側(cè)緣   android:layout_alignParentTop 貼緊父元素的上邊沿    第2類:屬性值必須為id的援用名“@id/id-name”   android:layout_below 在某元素的下方   android:layout_above 在某元素的的上方   android:layout_toLeftOf 在某元素的左側(cè)   android:layout_toRightOf 在某元素的右側(cè)   android:layout_alignTop 本元素的上邊沿和某元素的的上邊沿對(duì)齊   android:layout_alignLeft 本元素的左側(cè)緣和某元素的的左側(cè)緣對(duì)齊   android:layout_alignBottom 本元素的下邊沿和某元素的的下邊沿對(duì)齊   android:layout_alignRight 本元素的右側(cè)緣和某元素的的右側(cè)緣對(duì)齊 第3類:屬性值為具體的像素值   android:layout_marginBottom 離某元素底邊沿的距離   android:layout_marginLeft 離某元素左側(cè)緣的距離   android:layout_marginRight 離某元素右側(cè)緣的距離   android:layout_marginTop 離某元素上邊沿的距離
表格布局
使用的較少
幀布局
框架布局是將控件組織在Android程序的用戶界面中最簡(jiǎn)單的布局類型之1。
框架布局在xml文件中使用來(lái)定義。
框架布局中的子視圖總是被繪制到相對(duì)屏幕的左上角上,所有添加到這個(gè)布局中的視圖都是以層疊的方式顯示,第1個(gè)添加到框架布局中的視圖顯示在最底層,最后1個(gè)被放在最頂層,上1層的視圖會(huì)覆蓋下1層的視圖,類似于html中的div。
在框架布局中,經(jīng)常使用的屬性有以下幾項(xiàng):   android:top 將視圖放到屏幕的頂端   android:Buttom 將視圖放到屏幕的低端   android:Left 將視圖放到屏幕的左端   android:Right 將視圖放到屏幕的右端   android:Center_vertical 將視圖依照垂直方向居中顯示   android:Center_horizontal 將視圖依照水平方向居中顯示

Andriod中的單位

dip
縮寫:dp
1個(gè)基于density(密度)的抽象單位,這個(gè)和裝備硬件有關(guān),通常在開發(fā)中設(shè)置1些view的寬高推薦用這個(gè),1般情況下,在不同分辨率,都不會(huì)有縮放的感覺(jué)。
在運(yùn)行時(shí), Android根據(jù)使用中的屏幕的實(shí)際密度, 透明地處理任何所需dip單位的縮放。
不依賴裝備像素,根據(jù)裝備自動(dòng)適應(yīng)大小,推薦使用
sp
同dip/dp類似,會(huì)根據(jù)用戶的字體大小偏好來(lái)縮放,專門用于設(shè)置字體的大小
px
像素,是屏幕的物理像素點(diǎn),與密度相干,密度大了,單位面積上的px會(huì)比較多。在不同分辨率下會(huì)有不同的效果,通常不推薦使用這個(gè)。

這里寫圖片描述

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: xxxxxxx国产精品视频 | 男女啪啪片 | 欧美性xxxx极品hd欧美 | 亚洲第一国产 | 亚洲一区日韩一区欧美一区a | 无人日本免费视频 | 成人免费一区二区三区 | 一区二区视频在线观看高清视频在线 | 国产精品欧美一区二区三区不卡 | 国产孕妇色xxxxx | 久久久中文 | 亚洲精品一区二区三区中文字幕 | 亚洲 欧美 小说 国产 图片 | 久久精品国产精品亚洲精品 | 久久福利资源站免费观看i 久久高清一级毛片 | 国产区一区二 | 成 人免费视频l免费观看 | 亚洲国产欧美精品 | 日韩精品一区二区三区毛片 | www网站在线观看 | 午夜色在线 | 成人久久久久 | 亚洲 欧美 综合 | 偷拍区小说区图片区另类呻吟 | 久久嫩草影院网站 | 一级毛片真人不卡免费播 | 日韩欧美国产一区二区三区 | 国产裸舞福利在线视频合集 | 国产亚洲精品午夜高清影院 | a4yy私人毛片 | 国产精品2023 | 欧美福利一区二区三区 | 中文字幕乱码中文 | 大香网伊人久久综合网2020 | 精品伊人久久久香线蕉 | 亚洲日韩中文字幕一区 | 欧美成人精品一区二三区在线观看 | free性video另类重口 | 日韩有码视频在线 | 亚欧精品一区二区三区四区 | 日本天堂视频在线观看 |