Xây
dựng ứng dụng đèn pin trên thiết bị di động
Giới
thiệu chung
Mạng điện thoại di động xuất hiện tại Việt
Nam từ đầu những 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 càng ngày càng tăng. Do nhu cầu trao
dổi thông tin ngày càng tăng và nhu 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 dá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. Với những ưu điểm về tính đa dụng và mức giá thành không còn khó
tiếp cận, các thiết bị điện thoại thông minh (smartphone) đang dần dần chiếm
lĩnh thị trường và có xu thế thay thế sự phổ biến của điện thoại phổ thông. Cùng
với sự phát triển của thị trường điện thoại di độ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. Người sử
dụng cần ở chiếc điện thoại nhiều chức năng hơn là một thiết bị nghe gọi, nhắn
tin đơn thuần. Với sức mạnh xử lý của mình, !!một chiếc điện thoại thông minh
hay một chiếc máy tính bảng ngày nay hoàn toàn có thể trở thành một trợ lý cho
các doanh nhân, thiết bị dẫn đường cho người du lịch, hay một cỗ máy giải trí
cầm tay cao cấp… !!
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ẽ, đang thay đổi từng ngày. Bên cạnh các hệ điều hành Android, IOS, BlackBerry
đã có từ lâu là sự gia nhập thêm hệ điều hành Windown phone của Microsoft,
Tizen của Samsung… Nokia khai tử Symbian già cỗi tạo sự cạnh tranh giành thị
phần hệ điều hành trên thiết bị di động. Tùy vào sở thích của mỗi người dùng,
các tính năng, trải nghiệm của từng hệ điều hành sẽ có thể hấp dẫn hoặc không.
Hơn nữa, mỗi OS có điểm mạnh, điểm hạn chế riêng. Đương nhiên, các hệ điều
hành mới gia nhập làng OS smartphone sẽ có những lợi thế nhất định, nhưng kinh
nghiệm và nền tảng vững chắc, sự ưu ái lâu nay của người dùng đối với một số
tên tuổi đã khẳng định được thương hiệu cũng là thế mạnh đáng kể. Trong vài năm
trở lại đây, hệ điều hành Android ra đời với sự kế thừa ư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 đó và đang
là hiệu điều hành di động của tương lai và được nhiều người ưu chuộng nhất.
Chính vì những lý do trên, chúng em đã chọn
đề tài “Xây dựng ứng dụng đèn pin trên thiết bị di động” để làm chủ đề bài
tập lớn của mình, với mong muốn tìm hiểu và khám phá một lĩnh vực đầy mới mẻ và
thú vị: lập trình ứng dụng cho thiết bị thông minh cá nhân. Với vốn kinh nghiệm
ít ỏi và khả năng hạn chế của mình, việc thực hiện bài tập lớn chắc chắn còn có
nhiều thiếu sót. Sinh viên rất mong nhận được sự góp ý của các thầy cô!
I.
Khảo sát thực tế
1. Sơ
qua về hệ điều hành Android
Thị trường điện thoại thông minh hiện nay
đang chứng kiến sự cạnh tranh của hai nền tảng thiết bị lớn là Iphone với hệ
điều hành iOS của hãng điện tử Mỹ Apple và điện thoại sử dụng hệ điều hành
Android của Công ty Google, bên cạnh những nền tảng khác như Window phone của
Microsoft, BlackBerry OS của Research In Motion (RIM)… cũng có chỗ đứng của
riêng mình. Iphone đã sớm tạo được vị thế của mình trên thị trường nhờ những ưu
điểm về thiết kế tinh tế, giao diện đơn giản mà bóng bẩy, xây dựng được trải
nghiệm người dùng tốt. Tuy nhiên, những chiếc điện thoại chạy hệ điều hành Android
với sức mạnh cấu hình đa dạng, chức năng phong phú và giá cả hợp lý, phù hợp
nhu cầu của người sử dụng mới là những thiết bị có lượng người dùng phong phú, đa
dạng nhất.
Android
là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát
HD, HD Player, TV) 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).Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn
ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành
lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng,
phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di
động trong tương lai.
Mỗi hệ điều hành đứng trên góc độ người sử
dụng cũng như người lập trình đều có những ưu điểm và khuyết điểm riêng, và
việc lựa chọn một nền tảng để phát triển là tùy thuộc vào quyết định của người
lập trình. Và để bắt đầu bước vào con đường của một lập trình viên, cá nhân em
đã lựa chọn Android, bởi nhiều lý do: Android là một hệ điều hành mã nguồn mở,
nên khả năng tùy biến cao và có cộng đồng hỗ trợ đông đảo; chính sách hỗ trợ
ứng dụng của Google đơn giản hơn sự cứng nhắc thái quá của Appe. Và một lý do
nữa như đã nói ở trên, sự đa dạng các thiết bị chạy hệ điều hành Android cùng nhiều
mức giá thành khác nhau sẽ giúp Android tiếp cận người dùng dễ dàng hơn, nhất là
ở Việt Nam, nơi mức sống của người dân chưa cao. !!
2.Thị trường ứng dụng trên thiết bị di động ở Việt Nam
Vài
năm trở lại đây, với sự phổ biến và độ phủ sóng rộng rãi của các mạng 3G và wifi,
các thiết bị công nghệ di động ngày càng được ưa chuộng và sử dụng nhiều hơn. Tính
đến cuối năm 2012, có khoảng 36.5 triệu thuê bao di động đang sở hữu điện thoại
thông minh. Do tính cơ động cao mà các thiết bị di động này ngày càng tham gia
mật thiết vào cuộc sống người dùng. Chỉ riêng trong năm 2013, đã có gần 80 tỷ
lượt tải về các ứng dụng hỗ trợ trên Google Play và tại Việt Nam, kho ứng dụng
của Samsung cán mức 27 triệu lượt tải. Con số này đã phần nào nói lên nhu cầu
tìm kiếm lợi ích thực tế từ ứng dụng di động của người dùng đồng thời khẳng
định vai trò “người bạn đồng hành” của các thiết bị di động trong đời sống hằng
ngày của họ.
Trong
thực tế đã có rất nhiều sản phẩm “made in Vietnam” có mặt trên các kho ứng dụng
lớn, nhưng chưa có nhiều người dùng trong nước biết tới và khai thác. Chỉ đến
khi thế giới bùng lên cơn sốt Flappy Bird, một ứng dụng trò chơi đóng mác nội
địa mang về hàng chục ngàn đô la Mỹ mỗi ngày nhờ doanh thu quảng cáo, thì việc
phát triển một ngành công nghiệp ứng dụng di động (mobile apps industry) mới
được quan tâm nhiều Đây chính là một thị trường rất tiềm năng cho những nhà
phát triển phần mềm. Tuy vậy, các sản phẩm phần mềm trên điện thoại thông minh
dành cho người Việt vẫn còn rất khiêm tốn cả về số lượng và chất lượng. Thêm
nữa, thói quen sử dụng phần mềm bẻ khóa của người dùng Việt Nam cũng là một vấn
đề gây nhiều khó khăn cho nhà phát triển. Hầu hết những nhà phát triển phần mềm
mới chỉ đưa ra những phần mềm thăm dò mà chưa đưa mảng phát triển này vào chiến
lược kinh doanh.
3. Ứng dụng đèn pin trên
Android
Một ứng dụng tưởng chừng như rất đơn giản
nhưng lại vô cùng hữu ích. Nó đem lại thuận tiện cho người sử dụng trong nhiều
trường hợp.
Tiện ích:
- Thiết
kế thanh lịch nhất và khởi động nhanh nhất
- Các đèn sáng bao giờ hết.
- Đèn pin khởi động nhanh nhất.
- Thiết kế giao diện người dùng trực quan và thanh lịch, dễ sử dụng
- Sử dụng các cam LED ánh sáng!
II. GIỚI THIỆU ỨNG DỤNG
1. Ngôn ngữ lập trình sử dụng: Java.
a) Giới thiệu ngôn ngữ
lập trình Java
Java
là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần
lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy
hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn
thành bytecode,
bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy. Bằng
cách này, một ứng dụng Java có thể chạy trên nhiều nền tảng khác nhau. Cú
pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng đối tượng đơn
giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương trình
bằng Java
dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn.
b) Những đặc điểm của
ngôn ngữ Java
- Máy ảo Java (JVM - Java
Virtual Machine): Tất cả các chương trình muốn thực thi
được thì phải được biên dịch ra mã máy. Mã máy của từng kiến trúc CPU của mỗi
máy tính là khác nhau (tập lệnh mã máy của CPU Intel, CPU Solarix, CPU Macintosh
… là khác nhau), vì vậy trước đây một chương trình sau khi được biên dịch
xong chỉ có thể chạy được trên một kiến trúc CPU cụ thể nào đó. Đối với CPU
Intel chúng ta có thể chạy các hệ điều hành như Microsoft Windows, Unix, Linux,
OS/2, … Chương trình thực thi được trên Windows được biên dịch dưới dạng
file có đuôi .EXE còn trên Linux thì được biên dịch dưới dạng file có đuôi .ELF,
vì vậy trước đây một chương trình chạy được trên Windows muốn chạy được
trên hệ điều hành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch lại.
Ngôn ngữ lập trình Java ra đời, nhờ vào máy ảo Java mà khó khăn nêu trên đã được
khắc phục. Một chương trình viết bằng ngôn ngữ lập trình Java sẽ được biên dịch
ra mã của máy ảo java (mã java bytecode). Sau đó máy ảo Java chịu trách nhiệm
chuyển mã java bytecode thành mã máy tương ứng. Sun Microsystem chịu trách
nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên các kiến trúc
CPU khác nhau.
- Đơn giản: Java được
phát triển trên nền tảng C++ nên khá quen thuộc với lập
trình viên C++. Tuy nhiên Java lại đơn giản hơn nhờ loại bỏ các đặc điểm phức tạp,
dễ gây nhầm lẫn của C++ như nạp chồng toán tử, thao tác con trỏ, đa kế thừa…
- Hướng đối tượng: Hướng
đối tượng trong Java tương tự như C++ nhưng Java
là một ngôn ngữ lập trình hướng đối tượng hoàn toàn. Tất cả mọi thứ đề cập đến
trong Java đều liên quan đến các đối tượng được định nghĩa trước, thậm chí hàm
chính của một chương trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong
một lớp. Hướng đối tượng trong Java không có tính đa kế thừa (multi inheritance)
như trong C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ
tính đa kế thừa.
- Phân tán: Java là ngôn
ngữ thông dụng trong việc xây dựng các ứng dụng phân
tán (ứng dụng mạng, web…). Java có thư viện mở rộng dùng cho lập trình phân
tán như net,rmi,idl, CORBA… Các ứng dụng Java có thể truy xuất các đối tượng
liên mạng dùng địa chỉ URL tương tự như truy xuất file cục bộ.
- Mạnh mẽ: Java va có một
cơ chế định kiểu mạnh, tường minh, kiểm tra lúc
biên dịch và kiểm tra khi thông dịch trước khi thực thi nên giới hạn được lỗi; kiểm
tra truy xuất phần tử của mảng, chuỗi lúc thực thi, kiểm tra ép kiểu run-time. Java
cũng có mô hình quản lý bộ nhớ hiệu quả, tự động thu hồi bộ nhớ bằng trình gom
rác – garbage collection.
- An toàn: Java cung cấp
môi trường thực thi có kiểm tra chặt chẽ. Không bao
giờ giả định mã thực thi là an toàn. Có cơ chế kiểm tra an ninh hệ thống đa
- Khả chuyển: Chương
trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy
được trên máy ảo Java là có thể chạy được trên bất kỳ máy tính, hệ điều hành nào
có máy ảo Java, đúng như thông điệp của Java :“Viết một lần, chạy mọi nơi” (Write
Once, Run Anywhere).
- Biên dịch và thông
dịch: Java là một ngôn ngữ lập trình vừa biên dịch vừa thông
dịch. Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu
tiên được biên dịch thành tập tin bytecode có đuôi *.class và sau đó sẽ được trình
thông dịch thông dịch thành mã máy.
- Độc lập nền: Một chương
trình viết bằng ngôn ngữ Java có thể chạy trên nhiều
máy tính có hệ điều hành khác nhau (Windows, Unix, Linux, …) miễn sao ở đó
có cài đặt máy ảo java (Java Virtual Machine). Viết một lần chạy mọi nơi (write once
run anywhere).
- Đa nhiệm - đa luồng:
Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều
tiến trình, tiểu trình có thể chạy song song cùng một thời điểm và tương tác với
nhau.
- Hỗ trợ mạnh cho việc
phát triển ứng dụng: Công nghệ Java phát triển mạnh
mẽ nhờ vào Sun Microsystem và nay là Oracle đã cung cấp nhiều công cụ, thư
viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác
nhau cụ thể như: J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng
đơn, ứng dụng client-server; J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển
các ứng dụng thương mại, J2ME (Java 2 Micro Edition) hỗ trợ phát triển các ứng
dụng trên các thiết bị di động, không dây, … !!
ConversionConversion EmoticonEmoticon