Xây dựng phần mềm đèn pin trên thiết bị di động

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, … !!
Previous
Next Post »