Nguyễn Minh Sơn – Phan Thị Hường
Chu Nguyên Hoàng Minh
i
Mục Lục
Giới thiệu môi trường phát triển điện thoại di động ...............................1
1.1. Giới thiệu hệ điều hành Android ..........................................................................1
Lịch sử ...........................................................................................................1
Các phiên bản Android ..................................................................................2
Kiến trúc nền tảng Android ...........................................................................5
1.2. Cài đặt Android Studio .......................................................................................10
Tải Java JDK và cài đặt ...............................................................................11
Cài đặt Android Studio ................................................................................17
1.3. Cách sử dụng thiết bị dùng hệ điều hành Android .............................................22
Cài các ứng dụng quản lí file .......................................................................24
Ứng dụng quản lí chương trình đang chạy ..................................................25
Hình thành thói quen sao lưu dữ liệu thường xuyên ...................................27
Truy cập nhanh từ Home Screen .................................................................28
Gỡ bỏ ứng dụng không cần thiết .................................................................29
Thêm bớt âm báo của Android ....................................................................30
Làm gì khi máy không nhận thẻ nhớ? .........................................................30
Thường xuyên cập nhật phần mềm cho máy...............................................31
1.4. Các thành phần trong một ứng dụng Android ....................................................32
1.5. Đơn vị đo lường trong Android ..........................................................................33
1.6. XML trong Android ...........................................................................................35
1.7. Máy ảo Android ..................................................................................................36
1.8. Cấu trúc chung của một ứng dụng Android .......................................................37
1.9. Activities .............................................................................................................37
Service .........................................................................................................38
Broadcast Receivers ....................................................................................40
Content Provider ..........................................................................................40
1.10. Câu hỏi ..............................................................................................................41
1.11. Tóm tắt ..............................................................................................................41
Xử lý giao diện người dùng ......................................................................42
2.1. Cách tạo giao diện người dùng ...........................................................................42
XML Layout ................................................................................................43
Toast và Alert Dialog ..................................................................................44
Layouts ........................................................................................................46
Các View cơ bản..........................................................................................55
ii
Các control nâng cao: ListView, GridView, Gallery, Date picker, Tab
selector , Menu, Animations, và một số control nâng cao khác. ...........................62
2.2. Tương tác dữ liệu ................................................................................................72
Các kiểu lập trình sự kiện trong Android ....................................................72
Giới thiệu Intents và các cách thức sử dụng Intents ....................................77
2.3. Câu hỏi ................................................................................................................87
2.4. Tóm tắt ................................................................................................................87
Xử lý tập tin, lưu trạng thái ứng dụng, thao tác cơ sở dữ liệu và
Content Provider .........................................................................................................88
3.1. Xử lý Text File, XML file ..................................................................................88
3.2. Share Preferences ...............................................................................................92
3.3. SQLite .................................................................................................................96
3.4. Tạo Conten Provider...........................................................................................98
3.5. Câu hỏi ............................................................................................................. 103
3.6. Tóm tắt ............................................................................................................. 103
Xử lý đa tiến trình và dịch vụ ............................................................... 104
4.1. Các kỹ thuật xử lý đa tiến trình ....................................................................... 104
4.2. Tìm hiểu Intent Filter và BroadCast Receiver................................................. 117
4.3. Tìm hiểu dịch vụ: ............................................................................................. 125
4.4. Các kiểu dịch vụ hệ thống ............................................................................... 131
4.5. Câu hỏi ............................................................................................................. 137
4.6. Tóm tắt ............................................................................................................. 137
Networking APIs và Multimedia APIs ................................................ 138
5.1. Networking APIs ............................................................................................. 138
Tìm hiểu Mobile Networking ................................................................... 138
Tìm hiểu Strict Mode................................................................................ 138
Truy cập Internet với HTTP ..................................................................... 138
5.2. Multimedia APIs ............................................................................................. 147
Cách chạy Audio và Video ....................................................................... 147
Cách ghi Audio và Video ......................................................................... 149
Cách sử dụng Camera và lưu trữ hình ảnh ............................................... 152
5.3. Tóm tắt ............................................................................................................. 156
Telephony APIs và Location Base Service APIs................................. 158
6.1. Telephony APIs ............................................................................................... 158
Xử lý Contact resource ............................................................................. 158
Xử lý cuộc gọi đi và cuộc gọi đến, lịch sử cuộc gọi ................................ 160
iii
Sử dụng SMS và MMS............................................................................. 162
Sử dụng Bluetooth .................................................................................... 165
Sử dụng Wi-Fi .......................................................................................... 167
6.2. Location Base Service APIs ............................................................................ 170
Tìm hiểu GPS (Global Positioning Services) ........................................... 170
Geocoding Locations ................................................................................ 172
Mapping Locations ................................................................................... 175
6.3. Tóm tắt ............................................................................................................. 178
Thao tác với thiết bị cảm ứng ............................................................... 179
7.1. Cách cấu hình và sử dụng thiết bị cảm ứng..................................................... 179
7.2. Giám sát Pin điện thoại.................................................................................... 182
7.3. Tóm tắt ............................................................................................................. 184
Tài liệu tham khảo .................................................................................................... 185
1
Giới thiệu môi trường phát triển điện thoại di động
1.1. Giới thiệu hệ điều hành Android
Android là hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các
thiết bị di động có màn hình cảm ứng như điện thoại thông minh, máy tính bảng và
hiện nay là cả đồng hồ thông minh – Smart Watches, đầu phát HD, Blu-ay, Tivi
thông minh – Smart Tivi phát triển bởi Google và dựa trên nền tảng Linux. Trước
đây, Android được phát triển bởi Công ty liên hợp Android (sau đó được Google
mua lại vào năm 2005).
Lịch sử
Tổng công ty Android (Android, Inc.) được thành lập tại Palo Alto,
California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty
Danger), Rich Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire), Nick
Sears (từng là Phó giám đốc T-Mobile), và Chris White (trưởng thiết kế và giao
diện tại WebTV)[7] để phát triển, theo lời của Rubin, "các thiết bị di động thông
minh hơn có thể biết được vị trí và sở thích của người dùng".
Google mua lại Tổng công ty Android vào ngày 17 tháng 8 năm 2005, biến
nó thành một bộ phận trực thuộc Google. Những nhân viên của chủ chốt của
Tổng công ty Android, gồm Rubin, Miner và White, vẫn tiếp tục ở lại công ty
làm việc sau thương vụ này. Vào thời điểm đó không có nhiều thông tin về Tổng
công ty, nhưng nhiều người đồn đoán rằng Google dự tính tham gia thị trường
điện thoại di động sau bước đi này. Tại Google, nhóm do Rubin đứng đầu đã
phát triển một nền tảng thiết bị di động phát triển trên nền nhân Linux. Google
quảng bá nền tảng này cho các nhà sản xuất điện thoại và các nhà mạng với lời
hứa sẽ cung cấp một hệ thống uyển chuyển và có khả năng nâng cấp. Google đã
liên hệ với hàng loạt hãng phần cứng cũng như đối tác phần mềm, bắn tin cho
các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác nhau.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset
Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments,
Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology,
Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile
được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động.
Cùng ngày, Android cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên
minh, một nền tảng thiết bị di động được xây dựng trên nhân Linux phiên bản 2.6
Chiếc điện thoại chạy Android đầu tiên được bán ra là HTC Dream, phát hành
ngày 22 tháng 10 năm 2008. Biểu trưng của hệ điều hành Android mới là một
con robot màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ.
Hình 1.1 Logo Android do hãng Irina Blok thiết kế.
2
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ
điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành
trước. Mỗi bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái, theo tên
của một món ăn tráng miệng; ví dụ như phiên bản 1.5 Cupcake (bánh bông lan
nhỏ có kem) tiếp nối bằng phiên bản 1.6 Donut (bánh vòng). Phiên bản mới nhất
hiện nay là 5.0 Lollipop. Vào năm 2010, Google ra mắt loạt thiết bị Nexus - một
dòng sản phẩm bao gồm điện thoại thông minh và máy tính bảng chạy hệ điều
hành Android, do các đối tác phần cứng sản xuất. HTC đã hợp tác với Google
trong chiếc điện thoại thông minh Nexus đầu tiên, Nexus One.
Hình 1.2 Điện thoại Nexus One do HTC sản xuất được ra mắt vào 1/2010.
Nexus có cấu hình mạnh mẽ vào thời điểm đó với:
- Màn hình 3,7 inch độ phân giải 480x800 pixel,
- Chip Qualcomm Scorpion 1GHz,
- GPU Adreno 200,
- RAM 512MB
- Hệ điều hành cài sẵn Android 2.1 Eclair (mới nhất lúc phát hành)
Kể từ đó nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, như
điện thoại Nexus 4 và máy tính bảng Nexus 10, lần lượt do LG và Samsung sản
xuất. Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android
chủ lực của mình, với những tính năng phần cứng và phần mềm mới nhất của
Android.
Các phiên bản Android
Phiên bản thương mại đầu tiên, Android 1.0 được phát hành vào ngày 23
tháng 9 năm 2008 trên thiết bị thương mại là chiếc Google G1 (Hình 1). Lúc này,
hệ điều hành này được cài sẵn nhiều dịch vụ của Google như YouTube, tìm
kiếm, bản đồ, email,…
3
Hình 1.3 Điện thoại Google G1, phiên bản thương mại đầu tiên.
Từ tháng 4 năm 2009, phiên bản Android được phát triển dưới tên mã là chủ
đề bánh kẹo và phát hành theo thứ tự bảng chữ cái: Cupcake (1.5), Donut (1.6),
Eclair (2.0–2.1), Froyo (2.2–2.2.3), Gingerbread (2.3–2.3.7), Honeycomb (3.0–
3.2.6), Ice Cream Sandwich (4.0–4.0.4), Jelly Bean (4.1–4.3), và KitKat (4.4), …
Google công bố rằng 1 tỉ thiết bị đã được kích hoạt hiện đang sử dụng Android
OS trên toàn cầu vào tháng 9 năm 2013.
Android 1.5 Cupcake – API 3: Ra mắt tháng 30/4/2009: Phiên bản này có
một số tính năng đáng chú ý như: khả năng ghi lại và xem video thông qua chế
độ máy ghi hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại,
tích hợp bàn phím ảo với khả năng đoán trước văn bản, tự động kết nối với một
thiết bị Bluetooth trong một khoảng cách nhất định, các widget và thư mục mới
có thể cài đặt linh động trên màn hình chủ.
Hình 1.4 Giao diện hệ điều hành Android phiên bản 1.5 Cupcake.
Android 1.6 Donut – API 4: Ra mắt tháng 15/9/2009: Phiên bản này giúp
Nâng cao trải nghiệm trên kho ứng dụng Android Market, tích hợp giao diện tùy
4
biến cho phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng
cấp khả năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ,
cập nhật công nghệ hỗ trợ cho CDMA/EVDO, IEEE 802.1X, VPNs, và công cụ
text-to-speech, bước đầu hỗ trợ màn hình độ phân giải WVGA, cải thiện tốc độ
trong việc tìm kiếm và ứng dụng máy ảnh, mở rộng cử chỉ và thanh công cụ phát
triển mới GestureBuilder.
Hình 1.5 Giao diện hệ điều hành Android phiên bản 1.6 Donut.
Android 2.0/2.0.1/2.1 Eclair – API 5/6/7: Ra mắt tháng 12/1/2010 cho phiên
bản 2.1. Phiên bản này có sự cải thiện rõ rệt trong giao diện người dùng, tối ưu
hóa tốc độ phần cứng, hỗ trợ nhiều kích cỡ và độ phân giải màn hình hơn, thay
đổi giao diện duyệt web và hỗ trợ chuẩn HTML5, Exchange ActiveSync 2.5,
nâng cấp Google Maps 3.1.2, camera zoom kĩ thuật số tích hợp đèn flash, nâng
cấp bàn phím ảo và kết nối Bluetooth 2.1, thay đổi hàm API và sửa lỗi.
Android 2.2 Froyo – API 8: Ra mắt tháng 20/5/2010: Phiên bản này chú
trọng nâng cấp tốc độ xử lí, giới thiệu engine Chrome V8 JavaScript, hỗ trợ
Adobe Flash10.1, thêm tính năng tạo điểm truy cập Wi-Fi. Một tính năng đáng
chú ý khác hỗ trợ chuyển đổi nhanh chóng giữa các ngôn ngữ và từ điển trên bàn
phím đồng thời cho phép cài đặt và cập nhật ứng dụng ở các thiết bị mở rộng bộ
nhớ. Một trong những smartphone đầu tiên chạy phiên bản Android 2.2 Froyo là
LG Optimus One.
Android 2.3/2.3.3 Gingerbread – API 9/10: Ra mắt tháng 6/12/2010: Phiên
bản 2.3 này đã nâng cấp đáng kể giao diện người dùng, cải thiện bàn phím ảo,
thêm tính năng copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ
trợ chuẩn video WebM và nâng cao tính năng copy–paste. Cùng với phiên bản
Gingerbread, Google cũng ra mắt điện thoại đầu tiên của hãng sử dụng nền tảng
này là Google Nexus S.
Android 3.0 Honeycomb – API 11: Ra mắt tháng 2/2011: Đây là phiên bản
hệ điều hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa
cho tablet, từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt
mail...). Honeycomb hỗ trợ bộ xử lí đa nhân và xử lý đồ họa đồng thời hỗ trợ
5
nhiều màn hình home khác nhau, cho phép người dùng dễ dàng tùy biến giao
diện nếu muốn.
Android 3.1 Ice-cream sandwich – API 12: Phiên bản này ra mắt 10/5/2011.
Là sự kết hợp giữa Gingerbread và Honeycomb: cải tiến UI, kết nối phụ kiện
USB, mở rộng các danh sách ứng dụng gần đây, thay đổi kích thước các widget
màn hình chính, hỗ trợ cho các bàn phím và các thiết bị vào, hỗ trợ cho điều
khiển và gamepad, hỗ trợ cho chơi âm thanh – FLAC, khóa hiệu năng cao, duy
trì hiệu suất kết nối Wi-Fi cao khi màn hình thiết bị tắt, hỗ trợ HTTP proxy cho
mỗi kết nối đến điểm Wi-Fi. v.v…
Hình 1.6 Bảng phân phối phiên bản Android toàn cầu từ tháng 12 2009. Tính đến
tháng 1 2015, Android 4.x Jelly Bean là phiên bản Android sử dụng rộng rãi
nhất, hoạt động trên khoảng 59% thiết bị Android toàn cầu.
Ưu điểm hệ điều hành Android là hệ điều hành có mã nguồn mở nên khả năng
tùy biến cao, có thể tùy ý chỉnh sửa mà không có sự can thiệp hay cấm của
Google, tuy nhiên phải theo một số nguyên tắc đã được quy định từ trước. Mặt
khác đa dạng về ứng dụng, và sản phẩm của các hãng điện thoại khác. Đó cũng là
lý do cho dòng sản phẩm chạy hệ điều hành Android có giá cả khá tốt, do việc
cạnh tranh của các hãng sản xuất. Ngoài ra, khả năng chạy đa nhiệm chạy cùng
lúc nhiều ứng dụng.
Kiến trúc nền tảng Android
Phần cứng: Android không phải là một phần của phần cứng, mà nó là một
nền tange phần mềm hoàn chỉnh, có thể được điều chỉnh để làm việc trên bất kỳ
cấu hình phần cứng nào. Mọi thứ đều tồn tại trong Android từ Bootloader cho
đến ứng dụng. Có một số ràng buộc về phần cứng đối với thiết bị để có thể chạy
được hệ điều hành như:
Phần cứng
Yêu cầu tối thiểu
ARM-based
Chipset
128MB, 256MB Flash External
RAM
Mini hoặc Micro SD
Ổ cứng
16-bit color hoặc hơn
Màn hình
2MP CMOS
Navigation Key
Standard mini-B USB interface
USB
6
1.2 hoặc 2.0
Bluetooth
Hệ điều hành Android
Có 5 tầng phân biệt trong một hệ thống Android
5
4
2
3
1
Hình 1.7 Các tầng của hệ điều hành Android.
1
Tầng Linux Kernel
Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt
nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi
hoạt động của điện thoại muốn thi hành được thì đều thực hiện ở mức cấp thấp.
Ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần
cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process).
Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được
nâng cấp và chỉnh sửa rất nhiều để phù hợp với tính chất của những thiết bị cầm
tay, như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu
cầu kết nối mạng không dây.
Tầng này có các thành phần chủ yếu:
- Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận
những điều khiển của người dùng trên màn hình (di chuyển, cảm ứng…).
- Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ
camera trả về.
- Bluetooth Driver: Điều khiển thiết bị thu và phát sóng Bluetooth.
- USB driver: Quản lý hoạt động của các cổng giao tiếp USB.
- Keypad driver: Điều khiển bàn phím.
- Wifi driver: Chịu trách nhiệm về việc thu phát sóng wifi.
- Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu
dạng audio thành tín hiệu số và ngược lại.
- Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng
vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng
truyền thông được thực hiện.
7
- M-System Driver: Quản lý việc đọc ghi…lên các thiết bị như thẻ nhớ SD,
flash
- Power Management: Giám sát việc tiêu thụ điện năng.
2 Tầng thư viện
2
Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử
dụng, các thư viện đó được tập hợp thành một số nhóm như:
- Thư viện hệ thống (System C library): thư viện dựa trên chuẩn C, được sử
dụng chỉ bởi hệ điều hành.
- Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát và
ghi các loại định dạng âm thanh, hình ảnh, video thông dụng.
- Thư viện web (LibWebCore): đây là thành phần để xem nội dung trên
web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse)
cũng như để các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ
trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM,
AJAX…
- Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng
3
Tầng Android runtime
Tầng này là một phần mềm dùng để chạy các ứng dụng trên thiết bị Android,
bao gồm một tập các thư viện lõi (core libraries) cung cấp hầu hết các chức năng
trong một thư viện lõi của ngôn ngữ lập trình Java và máy ảo Dalvik. Mỗi ứng
dụng Android sẽ chạy một tiến trình riêng, với một máy ảo Dalvik riêng cũng
được thiết lập riêng cho mỗi ứng dụng. Dalvik được viết để một thiết bị có thể
chạy nhiều máy ảo cùng lúc hiệu quả. Máy ảo này thực thi các tập tin .dex, là loại
tập tin được tối ưu để tiết kiệm bộ nhớ và để quản lý tiến trình, quản lí bộ nhớ
hiệu quả, máy ảo này cũng sử dụng các chức năng do Linux Kernel cung cấp
4
Tầng application framework
Tầng này xây dựng bộ công cụ – các phần tử ở mức cao để các lập trình
viên có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả
năng sử dụng chung để tiết kiệm tài nguyên.
Đây là một nền tảng mở, điều đó có 2 điều lợi:
- Với các hãng điện thoại: Có thể tùy biến để phù hợp với cấu hình điện
thoại mà họ sản xuất cũng như để có thể có nhiều mẫu mã, style hợp thị
hiếu người dùng. Vì thế nên tuy cùng chung nền tảng Android mà điện
thoại của Google có thể khác với Motorola, HTC, T-Mobile, Samsung…
- Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng
trên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập
trình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng
dụng họ làm việc. Một tập hợp API rất hữu ích được xây dựng sẵn như hệ
thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành
phần giao diện cấp cao…
5
Tầng application
8
Đây là tầng ứng dụng giao tiếp với người sử dụng, bao gồm các ứng dụng
như:
- Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành: gọi điện,
quản lý danh bạ, duyệt web, nhắn tin, lịch làm việc, đọc email, bản đồ,
quay phim chụp ảnh…
- Các ứng dụng được cài thêm như các phần mềm học tiếng Anh, các trò
chơi, từ điển…
Các chương trình có đặc điểm là:
- Viết bằng Java có phần mở rộng là .apk.
- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine
được dựng lên để phục vụ cho nó.
- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một
thời điểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên với
mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy
mà thôi. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ
thống hoạt động tốt hơn.
- Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền
hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống.
- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di
động khác, Android cho phép một ứng dụng của bên thứ 3 chạy nền. Các
ứng dụng đó chỉ có một hạn chế là không được phép sử dụng quá 5%
công suất CPU. Điều đó nhằm để tránh độc quyền trong sử dụng CPU.
- Ứng dụng không có điểm vào cố định, không có phương thức main để
bắt đầu.
Khả năng kết nối mạng
Android hỗ trợ giao tiếp không dây bằng cách sử dụng: mạng wifi, GSM,
EGPRS (2.75G), 3G, 4G
- Mạng wifi 802.11: là hệ thống mạng không dây sử dụng sóng vô tuyên giống
như điện thoại di động, truyền hình analog và radio với băng tần 2.4 3.6 và
5GHz.
- Công nghệ GSM: hệ thống thông tin di động toàn cầu - Global System for
Mobile Communications là một công nghệ dùng cho mạng thông tin di động.
Dịch vụ GSM được sử dụng bởi hơn 2 tỷ người trên 212 quốc gia và vùng
lãnh thổ. Các mạng thông tin di động GSM cho phép có thể roaming với
nhau do đó những máy điện thoại di động GSM của các mạng GSM khác
nhau ở có thể sử dụng được nhiều nơi trên thế giới. GSM là mạng điện thoại
di động thiết kế gồm nhiều tế bào (cell) do đó các máy điện thoại di động kết
nối với mạng bằng cách tìm kiếm các cell gần nó nhất. Các mạng di động
GSM hoạt động trên 4 băng tần. Hầu hết thì hoạt động ở băng 900 MHz và
1800 MHz. Vài nước ở Châu Mỹ thì sử dụng băng 850 MHz và 1900 MHz
do băng 900 MHz và 1800 MHz ở nơi này đã bị sử dụng trước.
- ERPRS hay còn gọi EDGE hoặc mạng 2.75G - Enhanced Data Rates for
GSM Evolution, là một công nghệ di động được nâng cấp từ GPRS cho phép
truyền dữ liệu với tốc độ có thể lên đến 384 kbit/s cho người dùng cố định
hoặc di chuyển chậm và 144kbit/s cho người dùng di chuyển tốc độ cao.
Trên đường tiến đến 3G, EDGE được biết đến như một công nghệ 2.75G.
Thực tế bên cạnh điều chế GMSK, EDGE dùng phương thức điều chế 8-PSK
để tăng tốc độ dữ liệu truyền. Chính vì thế, để triển khai EDGE, các nhà
9
cung cấp mạng phải thay đổi trạm phát sóng BTS cũng như là thiết bị di
động so với mạng GPRS. Đặc điểm, EDGE cung cấp cho chúng ta một dung
lượng dữ liệu gấp 3 lần GPRS. Khi sử dụng EDGE nhà điều hành có thể
quản lý được hơn gấp 3 lần số thuê bao đối với GPRS, và gấp 3 lần giá trị dữ
liệu trên một thuê bao, thêm một dung lượng đáng kể cho truyền thông thoại.
EDGE sử dụng cấu trúc khung dữ liệu, kênh lô-gic,và băng thông sóng mang
200 kHz giống như TDMA (Xử-lý-nhân-chia-thời-gian) dùng trong mạng
GSM hiện nay, cho phép nó phủ sóng trực tiếp trên nền GSM hiện có. Đối
với một số mạng GSM/GPRS hiện nay, EDGE thực chất chỉ là một sự nâng
cấp phần mềm. EDGE cho phép truyền tải các dịch vụ di động tiên tiến như
tải video, clip nhạc, tin nhắn đa phương tiện hoàn hảo, truy cập internet, email di động tốc độ cao.
- 3G hay 3-G – Third-generation technology là công nghệ truyền thông thứ ba,
cho phép truyền cả dữ liệu thoại và dữ liệu ngoài thoại (tải dữ liệu, gửi email,
…). Nước đầu tiên đưa 3G vào khai thác thương mại một cách rộng rãi là
Nhật Bản. Năm 2005, khoảng 40% các thuê bao tại Nhật Bản là thuê bao 3G,
mạng 2G đang dần biến mất tại Nhật Bản. Người ta cho rằng, vào năm 2006,
việc chuyển đổi từ 2G sang 3G sẽ hoàn tất tại Nhật Bản và việc tiến lên thế
hệ tiếp theo 3.5G với tốc độ truyền dữ liệu lên tới 3 Mbit/s là đang được thực
hiện. Trên thực tế các nhà sản xuất thiết bị viễn thông lớn trên thế giới đã xây
dựng thành 4 chuẩn 3G thương mại chính: W-CDMA, CDMA 2000, TDCDMA, TD-SCDMA.
- 4G hay 4-G, viết tắt của fourth-generation, là công nghệ truyền thông không
dây thứ tư, cho phép truyền tải dữ liệu với tốc độ tối đa trong điều kiện lý
tưởng lên tới 1 cho đến 1,5 Gb/giây. Tên gọi 4G do IEEE (Institute of
Electrical and Electronics Engineers) đặt ra để diễn đạt ý nghĩa "3G và hơn
nữa". 4G còn được hiểu như là ngôn ngữ sử dụng thứ tư trong công nghệ vi
tính. Công nghệ 4G được hiểu là chuẩn tương lai của các thiết bị không dây.
Các nghiên cứu đầu tiên của NTT DoCoMo cho biết, điện thoại 4G có thể
nhận dữ liệu với tốc độ 100 Megabyte/giây khi di chuyển và tới 1 Gb/giây
khi đứng yên, cho phép người sử dụng có thể tải và truyền lên hình ảnh động
chất lượng cao. Mạng điện thoại 3G hiện tại của DoCoMo có tốc độ tải là
384 kilobyte/giây và truyền dữ liệu lên với tốc độ 129 kilobyte/giây. NTT
DoCoMo hy vọng đến năm 2010 sẽ có thể đưa mạng 4G vào kinh doanh.
Định dạng tập tin DEX
Trong môi trường Java chuẩn, mã nguồn java được biên dịch thành các tập
tin .class chứa các mã nhị phân Java. Máy ảo Java có thể đọc được các tập tin
.class trong này. Tương ứng mỗi lớp khi biên dịch sẽ thành một tập tin .class
tương ứng.
Trong nền tảng Android, mã nguồn Java cũng được biên dịch thành các tập
tin .class. Máy ảo Dalvik không đọc được các tập tin nhị phân Java này, nên
công cụ dx trong Android SDK sẽ tổ chức các tập tin .class này thành một tập
tin .dex (Dalvik Executable) duy nhất. Một tập tin .class chứa thông tin một
lớp, nhưng một tập tin .dex chứa tổng hợp của nhiều lớp. Tập tin dex này sẽ
được dùng để chạy trên máy ảo Dalvik.
Đây là những đoạn mã thực thi đã được đóng gói trong các tập tin apk. Các
đoạn mã trong một phần mềm Android được biên dịch vào các tập tin .dex và
chúng lần lượt được nén vào một tập tin apk duy nhất. Trên thiết bị các tập tin
10
.dex có thể được tạo ra bằng cách tự động dịch ngược lại các ứng dụng đã
được biên soạn bằng ngôn ngữ lập trình Java.
Hình 1.8 Thành phần trong tập tin .jar và .apk
Do việc tổ chức dữ liệu thành các hằng (Constant) và lưu trữ thành kho
(Pool) để tiện truy xuất và tối ưu việc sử dụng tài nguyên, nên kích thước tập
tin .apk nhỏ hơn rất nhiều so với tập tin .jar (Hình 1)
Có thể hình dung và so sánh quá trình biên dịch và đóng gói các thành phần
trong một dự án Java thông thường và dự án Android như sau:
Ứng dụng
java thông
thường
Ứng
dụng
Android
Các tập tin
*.java
Các tập tin
*.java
Trình biên
dịch
Trình biên
dịch
Các tập tin
*.class
Tài nguyên đi
kèm
Các tập tin
*.class
Tài nguyên đi
kèm
dx
jar
Tập tin
*.jar
Tập tin appt
*.dex
Tập tin
*.apk
Hình 1.9 So sánh quá trình biên dịch và đóng gói ứng dụng Java và ứng dụng
Android.
1.2. Cài đặt Android Studio
Android Studio là bộ công cụ lập trình do Google tạo ra. Để tải Android Studio
vào link http://developer.android.com/sdk/index.html. Khi tải Android Studio về
11
thì sẽ bao gồm: Android studio IDE, Android SDK Tools, Android 5.0 và Android
5.0 Emulator.
Các bước cài đặt:
Bước 1
Tải đặt Java JDK 7 hoặc hơn, tải Android Studio
Bước 2
Cài đặt Java JDK 7 hoặc hơn
Bước 3
Kiểm tra cài đặt java JDK
Bước 4
Cài Android Studio
Bước 5
Kiểm tra
Tải Java JDK và cài đặt
Đầu
tiên
tải
java
JDK
về
cài
tại
đường
dẫn
sau
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads2133151.html
Hình 1.10 Các gói cài đặt java JDK tương ứng với hệ điều hành.
Sau khi tải JDK, tìm đến file jdk-8u45-windows-x64.exe tiến hành cài đặt.
12
Hình 1.11 Bước 1 nhấn Next trong cửa sổ “Java SE Development Kit 8 Update 45
(64-bit)”.
Hình 1.12 Bước 2 nhấn Next trong cửa sổ “Java SE Development Kit 8 Update 45
(64-bit) - Custom Setup".
13
Hình 1.13 Bước 3: Nhấn Next trong cửa sổ “Java Setup - Destination Folder”.
Hình 1.14 Bước 3: Nhấn Next trong cửa sổ "Java Setup - Destination Folder".
Kết thúc quá trình cài đặt JDK thành công, tiếp theo thiết lập biến môi trường
cho java, mở cửa sổ System Properties.
Thiết lập biến môi trường:
14
Hình 1.15 Bước 1: Nhấn vào "Environment Variables..." trong cửa sổ "System
Properties".
Tại vùng System variables, thêm mới một biến có tên VAR_JAVA và đường
dẫn cài đặt java JDK.
Hình 1.16 Bước 2: Nhấn nút "New... " trong cửa sổ "Environment Variables".
15
Hình 1.17 Bước 3: Điền Variable name, Variable value và nhấn nút "OK" trong
cửa sổ "New System Variable".
Hình 1.18 Bước 4: Edit… biến “Path”.
- Xem thêm -