Tải bản đầy đủ (.pdf) (59 trang)

Phát triển ứng dụng giúp bé học chữ cái và số trên nền tảng android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.14 MB, 59 trang )

ĐỒ ÁN TỐT NGHIỆP
TÊN ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG
GIÚP BÉ HỌC CHỮ CÁI VÀ SỐ TRÊN NỀN TẢNG ANDROID


TÊN ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG
GIÚP BÉ HỌC CHỮ CÁI VÀ SỐ TRÊN NỀN TẢNG
ANDROID


MỤC LỤC

3


DANH MỤC CÁC TỪ VIẾT TẮT

STT

Chữ viết tắt

Giải thích

1
2
3

4


DANH MỤC BẢNG BIỂU VÀ SƠ ĐỒ



Số hiệu

Tên

Trang

1.1

5


LỜI NĨI ĐẦU

Hiện nay Cơng nghệ thơng tin vơ cùng phát triển thì mọi người đều sử
dụng máy vi tính hoặc điện thoại di động để làm việc và giải trí. Do đó việc xây
dựng các ứng dụng cho điện thoại di động đang là một ngành công nghiệp 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 lập trình.
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ác hệ điều hành Adroid, IOS, Windows
Phone, Symbian... đã rất phát triển trên thị trường truyền thông di động.
Trong vài năm trở lại đây, hệ điều hành Adroid 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. Adroid đã nhanh chóng là đối thủ cạnh tranh mạnh mẽ với
các hệ điều hành trước đó và đang là hệ điều hành di động của tương lai và được
nhiều người ưa chuộng nhất.
Ngày nay, với sự phát triển nhanh chóng của xã hội, nhu cầu giải trí thơng
qua điện thoại di động ngày càng phổ biến, vì vậy em đã chọn đề tài “Phát triển
ứng dụng giúp bé học chữ cái và số trên nề tảng Android” với mục đích
nghiên cứu, tìm hiểu về ứng dụng học chữ cái và số cho trẻ em trên android để

có thể đáp ứng nhu cầu giáo dục, giúp cho trẻ em có thể nhận biết và phân biệt
các chữ cái và số.

6


LỜI CẢM ƠN

Lời đầu tiên cho phép em xin gửi lời cảm ơn đến toàn thể giáo viên trường
Đại Học Công Nghệ Đông Á, đặc biệt là các thầy cô khoa Công nghệ thông tin
đã tạo điều kiện cho em thực hiện đề tài “Phát triển ứng dụng giúp bé học chữ
cái và số trên nề tảng Android”.
Có được bài báo cáo này, em xin tỏ lòng biết ơn trân thành và sâu sắc đến
thầy giáo Trần Xuân Thanh đã trực tiếp hướng dẫn, giúp đỡ và dìu dắt em với
những chỉ dẫn quý giá trong suốt quá trình triển khai và hồn thành báo cáo.
Trong q trình thực hiện đề tài cũng như làm báo cáo khó tránh khỏi
những sai sót, rất mong các thầy, cơ bỏ qua. Đồng thời do trình độ lý luận cũng
như kinh nghiệm thực tế cịn hạn chế nên khơng thể tránh khỏi những thiếu sót,
em rất mong nhận được những ý kiến đóng góp của các thầy, cơ để em có thể
học thêm nhiều kinh nghiệm và hoàn thành tốt hơn ở những đề tài sau.
Em xin trân thành cảm ơn!

7


LỜI CAM ĐOAN

8



PHẦN MỞ ĐẦU
1. Phát biểu bài tốn:
Hiện nay do tình hình dịch covid, trẻ em khơng thể đến trường nên gặp rất
nhiều khó khăn trong việc giáo dục trẻ. Tuy nhiên trong thời đại công nghệ phát
triển rất nhiều phụ huynh đã cho con sử dụng smartphone từ bé. Và chúng ta có
thể coi smartphone như một cơng cụ giáo dục để giúp trẻ tăng trí tưởng tượng,
tư duy và nhận thức, cụ thể ở đây là nhận biết các chữ cái và số. Để đáp ứng nhu
cầu này chúng ta cần 1 phần mềm để giúp cho trẻ có thể học, phát âm các chữ
cái và số.
2. Mục đích và yêu cầu của đề tài:
v Xây dựng được các chức năng của một app học chữ cái và số cho trẻ.
v App có khả năng tương thích, hiển thị được trên tất cả các thiết bị android
hiện tại và có thể năng cấp trong tương lai.
v Giao diện đẹp, dễ sử dụng, thu hút người dùng.
v Nắm bắt được công nghệ thiết kế ứng dụng Android bằng Java, Kotlin.
3. Đối tượng và phạm vi nghiên cứu:
3.1. Đối tượng nghiên cứu:
v Nghiên cứu nhu cầu sử dụng ứng dụng thực tế trên thị trường và tính cạnh
tranh, tìm hiểu được nhu cầu của người dùng từ đó phát triển một ứng
dụng phù hợp.
v Tìm hiểu, ứng dụng ngơn ngữ lập trình vào thiết kế app học chữ cái và số
cho trẻ em.
3.2. Phạm vi nghiên cứu:
v Khái niệm, kiến trúc hoạt động, các thành phần chính và chức năng của
ứng dụng Android.
v Nghiên cứu về các chức năng chính của app học chữ cái và số:

9



Ø Người dùng có thể thay đổi hiển thị chữ cái thường, chữ cái in hoa,
phát âm thanh đọc các chữ cái hoặc số khi người dùng chạm vào chữ
cái, số.
4. Phương pháp nghiên cứu:
v Phương pháp nghiên cứu lý thuyết: tiến hành thu thập các tài liệu, thông
tin liên quan đến đề tài.
v Tổng hợp và phân tích tài liệu để đưa ra hướng phát triển ứng dụng.
v Xây dựng và thiết kế ứng dụng trên ngôn ngữ lập trình Java, Kotlin.
v Tham khảo các ứng dụng cho Bé có sẵn trên CH Play.
v Tìm hiểu về các cơng cụ lập trình và cách sử dụng.
5. Những đóng góp của báo cáo:
Báo cáo hồn thành sẽ có những đóng góp chủ yếu sau đây:
v Đưa ra một app học chữ cái và số và Publish trên kho ứng dụng: Google
play hoặc Amazon appstore.
v Sử dụng ngơn ngữ lập trình Java hoặc Kotlin vào xây dựng và thiết kế
ứng dụng.

10


CHƯƠNG I: TỔNG QUAN
1.1. Giới thiệu về hệ điều hành Android:
1.1.1. Lịch sử Android
[1]Android là một hệ điều hành có mã nguồn mở 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 và máy tính bảng.
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux
do công ty Android Inc. (California, Mỹ) thiết kế. Cơng ty này sau đó được
Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform. Các thành
viên chủ chốt tại ở Android Inc. gồm có: Andy Rubin, Rich Miner, Nick Sears,

and Chris White.

Hình Android timeline
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay Mã
Nguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễn
thông và thiết bị cầm tay như: Texas Instruments, Broadcom Corporation,
Google, HTC, Intel, LG, MarvellTechnology Group, Motorola, Nvidia,
Qualcomm, Samsung Electronics, SprintNextel, T-Mobile, ARM Holdings,
Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony
Ericsson, Toshiba Corp, and Vodafone Group,…
Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho
nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android.
11


Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà
khai thác và các lập trình viên thiết bị cầm tay.
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng T-Mobile
cũng cơng bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc
smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau đó, Google lại
tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0. Trong
tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android
Platform. Khi Android được phát hành thì một trong số các mục tiêu trong kiến
trúc của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể
sử dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ
được áp dụng cho cho các dịch vụ mà nó cịn được áp dụng cho cả các thành
phần dữ liệu và giao diện người dùng.
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là
Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng
buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là

cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực
có thể chạy hệ điều hành Android mà khơng phải ký một bản hợp đồng nào. Vào
khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi
1.1 của hệ điều hành này. Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ softkeyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android cố định
vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một
số tính năng khác. Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật
dụng, và các live folder.
1.1.2. Delving với máy ảo
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị động
Android. Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi
Dalvik (dex). Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ
nhớ và tốc độ xử lý. Dalvik đã được thiết kế và viết bởi Dan Bornstein, người đã
12


đặt tên cho nó sau khi đến thăm một ngơi làng đánh cá nhỏ có tên là Dalvík ở đảo
Eyjafjưrður, nơi mà một số tổ tiên của ông sinh sống.
Từ góc nhìn của một nhà phát triển, Dalvik trơng giống như máy ảo Java (Java
Virtual Machine) nhưng thực tế thì hoàn toàn khác. Khi nhà phát triển viết một
ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong mơi trường Java.
Sau đó, nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thực thi
được ứng dụng này trên Android thì nhà phát triển phải thực thi một cơng cụ có
tên là dex. Đây là công cụ dùng để chuyển đổi bytecode sang một dạng gọi là dex
bytecode. "Dex" là từ viết tắt của "Dalvik executable" đóng vai trị như cơ chế
ảo thực thi các ứng dụng Android.

1.1.3. Giao diện:
Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp,
sử dụng cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt,
chạm, kéo dãn và thu lại để xử lý các đối tượng trên màn hình.

Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm
khởi đầu với các thơng tin chính trên thiết bị, tương tự như khái niệm desktop
trên máy tính để bàn. Màn hính chính Android thường gồm nhiều biểu tượng
(icon) và tiện ích (widget). Giao diện màn hình chính của Android có thể tùy
chỉnh ở mức cao, cho phép người dùng tự do sắp đặt hình dáng cũng như hành
vi của thiết bị theo sở thích.
1.1.4. Ưu và nhược điểm:
v Ưu điểm:
Ø Là hệ điều hành có mã nguồn mở nên khả năng tuỳ biến cao, có thể
tùy ý chỉnh sửa mà khơng có sự can thiệp hay cấm cản từ Google.

13


Ø Đa dạng sản phẩm, rất nhiều hãng điện thoại, thiết bị công nghệ đã ưu
ái chọn Android cho thiết bị của họ, giá cả thì hợp lý từ bình dân đến
cao cấp.
Ø Kho ứng dụng Google Play đồ sộ.
Ø Thân thiện và dễ sử dụng.
Ø Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao
Ø Có thể mở rộng bộ nhớ bằng thẻ nhớ
v Nhược điểm:
Ø Nhiều ứng dụng chạy ngầm làm chậm máy
Ø
Ø Dễ nhiễm phần mềm độc hại và virus. Do tính chất mã nguồn mở,
nhiều phần mềm khơng được kiểm sốt có chất lượng khơng tốt hoặc
lỗi bảo mật vẫn được sử dụng.
Ø Kho ứng dụng q nhiều dẫn đến khó kiểm sốt chất lượng, thiếu các
ứng dụng thật sự tốt.
Ø Cập nhật không tự động với tất cả thiết bị. Khi một phiên bản hệ điều

hành mới ra mắt, không phải tất cả sản phẩm đều được cập nhật, thậm
chí nếu muốn trải nghiệm bạn thường xuyên phải mua mới thiết bị.
1.2. Kiến trúc của Android:
Để lập trình Android hiệu quả, bên cạnh nắm vững kiến thức về ngơn ngữ
lập trình, về mơi trường Android Studio, chúng ta cần nắm kiến thức tổng quát
về kiến trúc của Android.
1.2.1. Android Software Stack:
Android được cấu trúc theo hình thức một hàng đợi phần mềm (software
stack) bao gồm các ứng dụng (applications), hệ điều hành (operating system),
14


môi trường thực thi (run-time environment), middleware, các dịch vụ (services),
các thư viện (libraries). Hình sau minh họa kiến trúc của Android với các tầng
(layer) và các thành phần tương ứng trong mỗi tầng trong một Android software
stack.
1.2.2. Linux Kernel:
Cung cấp một mức trừu tượng giữa các thiết bị phần cứng và các tầng trên
của stack. Dựa trên Linux phiên bản 2.6, kernel cung cấp đa nhiệm, các dịch vụ
hệ thống mức thấp như bộ nhớ, tiến trình, các drivers như wifi, audio, …
1.2.3. Android Runtime (ART):
Khi chúng ta thực thi một ứng dụng trong Android Studio, nó sẽ được biên
dịch thành một mã bytecode trung gian (định dạng DEX). Khi ứng dụng được
tải lên thiết bị, ART sẽ sử dụng một tiến trình gọi là Ahead-of-Time (AOT) để
chuyển mã bytecode thành định dạng mã để bộ xử lý có thể hiểu được. Định
dạng mã này được gọi là Executable and Linkable Format (ELF). Mỗi lần ứng
dụng Android tải lên thiết bị, phiên bản thực thi ELF đã tạo lần đầu sẽ chạy mà
không cần phải chuyển sang mã bytecode, do đó, ứng dụng thực thi nhanh hơn
và làm tăng tuổi thọ pin của các thiết bị.
Cách tiếp cận AOT ngược với cách biên dịch Just-in-Time (JIT) trong các

phiên bản Andorid cũ hơn. Biên dịch JIT sẽ chuyển mã bytecode sang máy ảo
mỗi lần ứng dụng Android được tải lên thiết bị, do đó, sẽ xử lý chậm hơn rất
nhiều so với cách biên dịch AOT.
1.2.4. Libraries (thư viện Android):
Android cung cấp một tập các thư viện rất đa dạng dùng trong đồ họa, cơ
sở dữ liệu, giao tiếp mạng, v.v. Các thư viện chủ yếu dự trên Java và C/C++.
Một số thư viện chủ yếu
gồm: android.app, android.database, android.net, android.opengl, v.v.

15


1.2.5. Application Framework:
Application Framework là một tập các dịch vụ định hình nên mơi trường
trong đó các ứng dụng Android thực thi và được quản lý. Một số framework chủ
yếu trong Android như Activity Manager, Content Providers, Resource
Manager, v.v.
1.2.6. Applications:
Là tầng cao nhất trong stack gồm các ứng dụng Android và các ứng dụng
bên thứ ba do người dùng cài đặt trên thiết bị.
1.3. Các thành phần trong một Android Project
1.3.1. AndroidManifest.xml
[2]Trong bất kì một project Android nào khi tạo ra đều có một file
AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các
permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thơng tin
về phiên bản SDK cũng như main activity sẽ chạy đầu tiên. File này được tự động
sinh ra khi tạo một Android project. Trong file manifest bao giờ cũng có 3 thành
phần chính đó là: application, permission và version.
Dưới đây là nội dung của một file AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>

xmlns:android=" />package="dtu.k12tpm.pbs.activity"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name">
android:label="@string/app_name">
<intent-filter>
16


<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainContactListActivity" />
<activity android:name=".RestoreContactActivity" />
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-sdk android:minSdkVersion="7" />
android:name="android.permission.INTERNET"/>
android:name="android.permission.CALL_PHONE"/>
</manifest>
v Application
Thẻ <application>, bên trong thẻ này chứa các thuộc tính được định nghĩa cho
ứng dụng Android như:
• Android:icon = “drawable resource” Ở đây đặt đường dẫn đến file icon của

ứng dụng khi cài đặt. VD: android:icon = “@drawable/icon”.


Android:name = “string” thuộc tính này để đặt tên cho ứng dụng Android.
Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng.



Android:theme = “drawable theme” thuộc tính này để đặt theme cho ứng
dụng. Các theme là các cách để hiển thị giao diện ứng dụng. Ngồi ra cịn
nhiều thuộc tính khác…

v Permission
Bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài nguyên của
ứng dụng. Khi cần sử dụng một loại tài ngun nào đó thì trong file manifest của
ứng dụng cần phải khai báo các quyền truy xuất như sau:
17


android:name="android.permission.READ_PHONE_STATE"/>
android:name="android.permission.ACCOUNT_MANAGER"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
v SDK version
Thẻ xác định phiên bản SDK được khai báo như sau:
<uses-sdk android:minSdkVersion="7" />.
Ở đây chỉ ra phiên bản SDK nhỏ nhất mà ứng dụng hiện đang sử dụng.
1.3.2. File R.java

-

File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được
sử dụng để quản lý các thuộc tính được khai báo trong file XML của ứng dụng
và các tài nguyên hình ảnh.

-

Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào xảy
xa làm thay đổi các thuộc tính trong ứng dụng. Chẳng hạn như, bạn kéo và thả
một file hình ảnh từ bên ngồi vào project thì ngay lập tức thuộc tính đường dẫn
đến file đó cũng sẽ được hình thành trong file R.java hoặc xố một file hình ảnh
thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị xố. Có thể nói file
R.java hồn tồn khơng cần phải đụng chạm gì đến trong cả quá trình xây dựng
ứng dụng.

-

Dưới đây là nội dung của một file R.java:
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
18


* should not be modified by hand.
*/
package dtu.k12tpm.pbs.activity;
public final class R {

public static final class array {
public static final int array_timeout=0x7f050000;
}
public static final class attr {
}
public static final class drawable {
public static final int add=0x7f020000;
public static final int backup_icon=0x7f020001;
public static final int checkall=0x7f020002;
}
public static final class id {
public static final int Button01=0x7f070006;
public static final int Button02=0x7f070007;
public static final int CheckBox01=0x7f070017;
}
public static final class layout {
public static final int contact_list=0x7f030000;
public static final int content_sender=0x7f030001;
public static final int friend_list=0x7f030002;
19


}
public static final class menu {
public static final int context_menu=0x7f060000;
public static final int menu_options=0x7f060001;
public static final int options_menu=0x7f060002;
}
public static final class string {
public static final int app_name=0x7f040001;

public static final int context_menu_item_delete=0x7f04000b;
public static final int context_menu_item_edit=0x7f04000a;
}}
1.3.3. Chu kì ứng dụng Android
Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứng
dụng khi codes cần được run và sẽ cịn chạy cho đến khi:
- Nó khơng phụ thuộc.
-

Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác. Một sự
khác thường và đặc tính cơ bản của Android là thời gian sống của tiến trình
ứng dụng khơng được điều khiển trực tiếp bới chính nó. Thay vào đó, nó được
xác định bởi hệ thống qua một kết hợp của:

-

Những phần của ứng dụng mà hệ thống biết đang chạy

-

Những phần quan trọng như thế nào đối với người dung Bao nhiêu vùng nhớ
chiếm lĩnh trong hệ thống.

20



×