Các hệ điều hành J2ME, Android, IOS, Hybrid, Web dased Mobile Application đã có rất phát triển trên thị trường truyền thống di động Trong vai nam trở lại đây, hệ điều hành Android ra đời
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC - ĐẠI HỌC HUE
KHOA CÔNG NGHỆ THÔNG TIN
THUC TAP VIET NIÊN LUẬN
DE TAI:
TIM HIEU LAP TRINH DI DONG (ANDROID)
GIAO VIEN HUONG DAN
VO VIET DUNG
SINH VIEN THUC HIEN
HO TEN: LE HUU NHAT DUY
MA SV: 2071020022
Trang 2MỤC LỤC
1.1 Giới thiệu về Anndroidd << se set E9 ve eez 2
2 Á ÏTIÉTTẨS o5 G000 Họ cọ cm cm lọ lon ch ni ch 0n mm 7 2.5 Broadcard-Receiver 8
2.8 Content provider 8 III Cac thanh phan giao dién co ban trong Android 9 3.1 Tổng quan về các thành phan trong View 9
3.2.1 Khởi tạo và các view cơ bản 10 3.2.2 Các thuộc tính của view 11 3.3 Các view cơ bản trong Android 13
IV Các tài nguyên và ứng dụng cơ bản trong Android 14
Trang 34.1 Tổng quan về tài nguyên trong Android
4.1.1 Thêm tài nguyên vào các dự án
4.1.2 Các kiểu tài nguyên
4.2 Truy cập vào tài nguyên
4.2.1 Truy cập tài nguyên trong Java
4.2.2 Truy cập tài nguyên trong XML
4.3 Cung cấp các nguồn tài nguyên khác 4.3.2 Ngôn ngữ của người dùng
Trang 4LỜI MỞ ĐẦU
Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu năm 1990 và theo thời gian số lượng các thuê bao cũng như các nhà cung cấp dịch vụ di động tại Việt Nam ngày cảng tăng Do nhu cầu trao đôi thông tin ngay cảng tăng vả nhụ cầu sử dụng sản phâm công nghệ cao nhiều tính năng, cầu hình cao, chất lượng tốt, kiểu đáng mẫu mã đẹp, phong phú nên nhà cung cấp phải luôn luôn cải thiện, nâng cao những sản phẩm của mình
Do đó việc xây dựng mới đây tiềm năng và hứa hẹn nhiều sự phát triển vượt bậc của ngành khoa học kĩ thuật
Cùng với sự phát triển của thị trường điện thoại dị động là sự phát triển mạnh mẽ của
xu hướng lập trình phần mềm ứng dụng cho các thiết bị di động Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đa dạng và phong phú trên các hệ điều hành di động cũng phát triên mạnh mẽ và đang thay đổi từng ngày Các hệ điều hành J2ME, Android, IOS, Hybrid, Web dased Mobile Application đã có rất phát triển trên thị trường truyền thống di động
Trong vai nam trở lại đây, hệ điều hành Android ra đời với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiền nhất hiện nay, đã được nhà phát triển công nghệ rất nỗi tiếng hiện nay là Google Android đã nhanh chóng là đối thủ cạnh tranh mạnh mẽ với các hệ điều hành trước đó va dang 1a
hệ điều hành di động của tương lai và được nhiều người ưa chuộng nhất
Đê biết và hiểu rõ hơn về lập trình Android trên di động, em xin phép tìm hiểu và trình bay bài luận của mình về nội dung trên Trong quá trình tìm hiểu và làm bài, do có giới hạn về thời gian nên nội dung bài luận có thể chưa đầy đủ hoặc chính xác thì mong thầy góp ý thêm Em xin cám ơn thầy đã đọc bài báo cáo
Trang 5® Nam 2005, Google so hiru Android cung với các quản ly
¢ Nam 2007, OHA(Open Handset Alliance ) được thành lập bởi Google cùng với nhiêu nhà sản xuât phân cứng, thiệt bị không dây và vi xử lý Công bô nên tảng phát trién Android1.0
¢ Nam 2008, thiết bị HTC Dream là phiên bản thể hệ đâu tiên hoạt động với hệ điều hành Android 1.0
® - Năm 2010, Goople khởi đầu dòng thiết bị đầu tiên của HTC là Nexus One
e© Năm 2013, Ra mắt loại thiết bị phiên ban GPE
¢ Nam 2014, Google céng bao Android wear, hé diéu hanh danh cho cac thiét bi deo duoc
1.2 Kiến trúc của Android
© - Các thư viện và API viết bằng C
» - Các ứng dụng thực thi viết bằng Java.Sử dụng máy ảo Dalvik để biên dịch mã dex (Dalvik Excuteable) sang Java bytecode
Lae
=
Trang 6Application Framework bao gồm các dịch vụ chính sau:
¢ Activiqy Manager — Điều khiến các khía cạnh của vòng đời ứng dụng
May ao Dalvik VM sử dụng các tính năng cốt lõi của Linux như quản lý bộ nhớ, đa luồng, mà thực chất là bên trong ngôn ngữ Java Máy ảo Dalvik cho phép tất cả các ứng dụng Android chạy trong tiễn trình riêng của nó
Libraries
Phia trén Linux Kernel 1a tap hợp các bộ thư viện mã nguồn mở WebKit, bộ thư viện nồi tiêng libc, cơ sở đữ liệu SQLIte hữu ích cho việc lưu trữ và chia sẻ dữ liệu, bộ thư viện thê phát, phi âm về âm thanh, hoặc video Thư viện SSL chịu trách nhiệm cho bảo mật Internet
Android Libraries
Phần này gồm các thư viện dựa trén Java No bao g6m cac Framework Library giup xay dung, vé đồ họa và truy cập cơ sở dữ liệu trở nên dễ dàng hơn Dưới đây là một số Android Library cốt lõi có sẵn cho lập trình viên Android:
¢ android.app — Cung cấp truy cập tới mô hình ứng dụng và nó là nền mong cho tat cả ứng dụng Android
® android.content— Việc truy cập nội dung, các thông điệp øTữa các ứng dụng và các thành phần ứng dụng trở nên dễ dàng hơn
° android.database — Được sử dụng dé truy cập dữ liệu được công bố bởi Provider va bao g6m cac lop quan ly co so dtr ligu SQLite
Trang 7android.opengl — Mot Java Interface cho OpenGL ES 3D théng qua API
android.os — Cung cấp cho các ứng dụng sự truy cập tới các dịch vụ chuẩn của hệ điều hành như thông báo, dịch vụ hệ thông và giao tiếp nội tiến trình
android.text — Được sử dụng dé phuc hồi và thao tác text trên một thiết
bị hiện thị
android.view — Các khối kiến trúc nền tảng của ứng dụng UI
android.widget — Một tập hợp các UI được xây dựng trước như button, label, list view, layout manager, radio button,
android.webkit — Một tập hợp các lớp cho phép khả năng đề trinh duyét trên web được xây dựng bên trong các ứng dụng
Linux kernel: Linux Kernel 1a lớp thấp nhất Nó cung cấp các chức năng cơ bản như quản lý tiến trình, quản lý bộ nhớ, quản lý thiết bị như: Camera, bản phím, màn hình, Ngoài ra, nó còn quan ly mang, driver của các thiết bị, điều này gỡ bỏ sự khó khăn về giao tiếp với các thiết bị ngoại vi
IH Các thành phần của Android
2.1 Giới thiệu chung về các component trong Android
Như hình vẽ bên dưới các bạn có thé thấy một robot chiến binh Android có thanh kiếm
là tượng trưng cho Activity, có hai chiếc ăng ten có thể xem la Broadcast Receiver, Intent la canh tay, View la d6i chan Content Provider giong như một nơi cung cấp nhiên liệu cho robot chắng hạn Một thành phân cũng năm trong thân robot không thê nhìn thấy nữa là Service, là một chiếc quạt gió chạy liên tục, khi robot chiến đấu hay
kế cả khi ngủ nghỉ thì chiếc quạt này vẫn chạy
2.2 Views
Broadcast Receivers
Trang 8Các thành phan giao diện xây dựng từ lớp cơ sở View (android.view View) cua Android, các thành phân nảy cung cập san kha da dang
như Button, TextView, CheckBox tất cả chúng ta gọi nó là View
View biểu diễn một hình chữ nhật, trong đó nó hiện thị thông tin nào đó cho người dung, va người dùng có thê tương tác với View
Trang 9Có một số layout mà bạn tham khảo trước tiên như FrameLayout,
ConstraitLayout, LinearLayout, RelativeLayout, GridLayout, TableLayout, CoordinatorLayout
Trang 102.2.3 Hệ thống cấp bậc các View
Mỗi View trong hệ thông giao diễn được biêu diễn bởi một hình chữ nhật, nó vẽ trên nó thông tin gửi tới người dùng cũng như là nơi để nhận thông tin nhập vào như nhập dữ liệu, chạm, vuốt Một giao diện người dùng được bắt đầu bằng một View sốc, bên trone nó chứa các View con, đến lượt các View con lại có thể chứa các View con khác Cứ như vậy, giao diện hình thành được biéu diễn như một đồ thị dạng cây nhiêu nhánh (view hierarchy)
Intent cũng giúp liên lạc giữa các phần của một ứng dụng dễ dàng Di chuyền từ một man hinh (Activity) sang mét man hinh khác được thực hiện thông qua Intents
Trang 11Android hỗ trợ hai loại Intent : minh bạch vả ngầm Khi một ứng dụng định nghĩa thành phần đích của nó trong một Intent, đó là một Intent minh bạch Khi ứng dụng không đặt tên cho một thành phần đích, đó là một Intent ngầm
2.5 Broadcard-Receiver
Broadcast Receiver là một trong 4 component lớn trong Android, với mục đích là lắng nghe các sự kiện, trạng thái của hệ thông phat ra thong qua Intent nhờ đó mà các lập trinh viên có thê xử lí được các sự kiện hệ thông ở bên trong ing dung cua minh Broadcast Receiver có thê hoạt động được cả khi ứng dụng bị tắt đi, nghĩa là ở background chinh vi vay no thường được sử dụng với service
2.6 Services
Một Service là một thành phần (component) có thê thực hiện các hoạt động lâu dài trong background vả nó không cung câp một giao diện người dùng Một thành phần khác của ứng dụng có thé start no, va nó tiếp tục chạy trong background ngay ca khi neguwoi dung chuyén sang ứng dụng khác Ngoải ra một thành phần có thể liên kết (bind) voi mot Service để tương tác với Service đó, thậm chí là thực hiện truyền thông liên tiễn trình IPC (interprocess communication - IPC ban có thé hiéu 1a mét hoat dong chia sẽ đữ liệu qua nhiều tiến trình, thông thường sử dụng giao thức truyền thông và
nó phải có Client và Server)
2.7 Phân loại service
Theo trang chủ developer.android.com thi Service được chia lam 3 loại khác nhau: Foreground Service: M6t Forepround Service thực hiện một số thao tác mà nĐƯười dùng chủ ý, có thê thây rõ ràng
Background Service: Một Backeround Service sẽ thực hiện các hoạt động mà không được người dùng chú ý trực tiếp
Bound Service: Mot service được gọi là Bound khi một thành phần của ứng dụng ràng buộc với nó bởi lời gọi bindService() Một Bound Service cung cấp một giao diện Client - Server cho phép các thành phần tương tác với nó: gửi yêu cầu, nhận kết quả và thậm chí là IPC Một Bound Service chỉ chạy miễn là có một thành phần ràng buộc với
nó Có thê có nhiều thành phần ràng buộc với Bound Service cùng lúc, nhưng khi tất
cả tháo bỏ ràng buộc (unbound}) thì nó sé Destroy Trước đây Service thường được chia
là Started Service va Bound Service
2.8 Content provider
Content provider là một thành phần để quản lý truy cập dữ liệu, nó cung cấp các phương thức khác nhau để các ứng dụng có thê truy cập đữ liệu từ một ứng dụng khác bằng cách sử dụng ContentResolver Content Provider có thê piúp cho một ứng dụng quản lý quyền truy cập đến dữ liệu được lưu bởi ứng dụng đó, hoặc các ứng dụng khác, và đó là một cách đề ta có thể chia sẻ đữ liệu cho các ứng dụng khác nhau
Trang 12Hình vẽ biểu diễn cho việc cách content providers quản lý việc truy cập tới bộ nhớ
Your application
Your content
provider implementation
Other applications
Your data storage
Content Provider điều phối việc truy cập tới bễ lưu trữ dữ liệu thông qua các API
và các component như hình dưới, nó bao gồm :
® - Chia sẻ dữ liệu từ ứng dụng của bán tới các ứng dụng khác
® - Gửi dữ liệu sane wIdpet
e _ Trả về một kết quả gợi ý khi search cho ứng dụng của bạn thông qua Seach Framework su dung Search Recent Suggestions Provider
e - Đồng bộ dữ liệu của ứng dụng với server bằng cách sử dụng Abstract Threaded Sync Adapter
e Tai di ligu lén UI su dung Cursor Loader
Content Provider hoat d6ng rat giống với một cơ sở đữ liệu, bạn có thể truy van, chỉnh sửa nội dung, cũng như là thêm xóa các nội dụng sử dụng các phương thức: msert(), update(), delete(), query()
HI., Các thành phần giao điện cơ bản trong Android
3.1 Tổng quan về các thành phần trong View
Android Layout là một lớp điều khiến việc sắp xếp các thành phần con của nó xuất hiện trên màn hình Bât cứ thành phân nao do là mộtView(hoặc thừa kê từ View) đều
có thê là con của một Layout Tât cả các lớp Layout đêu mở rộng từ lớp VIewGroup (mà kê thừa từ View), do đó bạn cũng có thê tạo một lớp Layout tùy biên của mình, bang cach tạo một lớp mở rộng từ Viewroup
Trang 13Những dòng chữ hiến thị trên thiết bị Android (TextView), cho đến những khung nhập liệu (EditText), nhitng hinh anh (Image View), danh sách có thê cuộn lên, cuộn xuông (ListView, GridView, RecycleView) hay những cái Button các bạn thê click đều là những View trong android, những view này đều có một chức năng riêng
Sơ đồ thừa kế giữa các thành phân giao diện trong Android
3.2.1 Khởi tạo và các view cơ bản
Những gì chúng ta nhìn thấy trên mản hình thiết bị android được gọi là View (trong window thuong duoc gọi là control) View được vẽ trên thiết bị android với một hình chữ nhật
Cac view cơ bản và thường xuyên sử dụng trong android đó là:
Trang 14® wrap content: chiều cao của view phụ thuộc vảo content của view
® - oiá trị xác định: xác định chiêu cao của view theo một don vi nao đó (dp, px,
in, mm, sp )
Layout_width :
¢ match width: chiều rộng của view sẽ bằng đúng chiều rộng của phần tử cha chứa nó
® wrap content: chiéu rộng của view phụ thuộc vào content cua view
® oiá trị xác định: xác định chiều rong cua view theo một đơn vị nào do (dp,
Trang 15Và ánh xạ đối tượng TextView trong xml thông qua ¡d trong java
TextView tvMessage = (TextView)findViewById(R.id.tv_message) ;
Background :
Thuộc tính này xác định màu nên của view
android: background="#ffffff” // white color
Margin va padding :
Hai thuộc tính margin và padding khá là quen thuộc với tất cả các bạn lập trình web, trong android hai thuộc tính này cũng như lập trình web và rất để nhằm lẫn
Marøin là khoảng từ các cạnh của view hiện tại tới các view khác
Paddins là khoảng cách từ các cạnh của view tới phần content của nó
Dé hiéu rõ các bạn theo dõi phân dưới đây: