Chương 1: Tổng quan 2 Báo cáo Khóa luận tốt nghiệp : CƠ SỞ LÝ THUYẾT Android [1] 2.1 Giới thiệu Android là một hệ điều hành di động dựa trên nền tảng Linux phiên bản 2.6 dành cho các dòng điện thoại SmartPhone. Đầu tiên được ra đời bởi công ty liên hợp Android, sau đó được Google mua lại và phát triển từ năm 2005 và trở thành một hệ điều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưa chuộng cao trên thế giới. Hệ điều hành Android là một hệ điều hành rất mạnh, có bảo mật cao, hỗ trợ được nhiều công nghệ tiên tiến như 3G hiện nay là 4G và có thể tương lai gần là 5G, GPS, Wifi,. tương thích với nhiều phần cứng, hỗ trợ nhiều loại bộ nhập dữ liệu như keyboard, touch.
Android là hệ điều hành di động nên có khả năng kết nối cao với các mạng không dây. Hỗ trợ công nghệ OpenGL nên có khả năng chơi các phương tiện media, hoạt hình cũng như trình diễn các khả năng đồ họa khác cực tốt, là tiền đề để phát triển các ứng dụng có giao diện phức tạp chẳng hạn như các trò chơi. Android liên tục được phát triển, mỗi bản cập nhật từ Google là mỗi lần Android được tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệ mới. Hiện nay, phiên bản mới nhất 9.0 phát hành ngày 06/08/2018 và đang tiếp tục được cập nhật.
Năm 2008, hệ điều hành Android đã chính thức mở toàn bộ mã nguồn, điều đó cho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mở này hoàn toàn miễn phí, không phải trả tiền nên giúp họ tiết kiệm khá lớn chi phí phát triển hệ điều hành. Những điều đó là cực kỳ tốt không chỉ đối với các hãng sản xuất điện thoại nhỏ mà ngay cả với những hãng lớn như Samsung, HTC. Với Google, vì Android hoàn toàn miễn phí, Google không thu tiền từ những hãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ android nhưng bù lại, những dịch vụ của hãng như Google Search, Google Maps,. nhờ có android mà có thể dễ dàng xâm nhập nhanh vào thị trường di động vì mỗi chiếc điện thoại được sản xuất ra đều được tích hợp hàng loạt dịch vụ của Google.
Với các nhà phát triển ứng dụng (developers), việc hệ điều hành Android được sử dụng phổ biến đồng nghĩa với việc họ có thể thoải mái phát triển ứng dụng trên nền Android với sự tin tưởng là ứng dụng đó có thể chạy được ngay trên nhiều dòng điện thoại của các hãng khác nhau. Họ ít phải quan tâm là đang phát triển cho điện thoại nào, phiên bản bao nhiêu vì nền tảng Android là chung cho nhiều dòng máy, máy ảo Java đã chịu trách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện thoại mà nó đang chạy. Tất cả các chương trình ứng dụng được viết bằng ngôn ngữ Java kết hợp với XML nên có khả năng khả chuyển cao. Chương 2: Cơ sở lý thuyết 3 Báo cáo Khóa luận tốt nghiệp 2.2 Lịch sử các phiên bản Android Dưới đây là danh sách tóm tắt các bản Android cùng tên và ngày phát hành Bảng 2.1: Bảng danh sách tóm tắt các phiên bản Android Phiên bản Tên Ngày phát hành Android 1.4 Ice Cream Sandwich 18/10/2011 Android 4.1 Jelly Bean 09/07/2012 Android 4.3 Kiến trúc hệ điều hành Android Hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux, tầng Libraries & Android runtime, Tầng Application Framework và trên cùng là tầng Application.
Chương 2: Cơ sở lý thuyết 4 Báo cáo Khóa luận tốt nghiệp Hình 2.1: Kiến trúc hệ điều hành Android 2.1 Linux Kernel − Dưới cùng là lớp Linux - Linux 3.6 cùng với khoảng 115 bản vá. Lớp này cung cấp 1 cấp độ trừu tượng giữa phần cứng của thiết bị và các thành trình điều khiển phần cứng thiết yếu như máy ảnh, bàn phím, màn hình hiển thị. Đồng thời, hạt nhân (kernel) còn xử lý tất cả các thứ mà Linux có thể làm tốt như mạng kết nối và một chuỗi các trình điều khiển thiết bị, giúp cho giao tiếp với các thiết bị ngoại vi dễ dàng hơn.2 Các thư viện − Ở trên lớp nhân Linux là tập các thư viện bao gồm WebKit - trình duyệt Web mã nguồn mở, được biết đến như thư viện libc, cơ sở dữ liệu SQLite - hữu dụng cho việc lưu trữ và chia sẻ dữ liệu ứng dụng, các thư viện chơi và ghi âm audio, video, hay các thư viện SSL chịu trách nhiệm bảo mật Internet.3 Các thư viện Android − Đây là các thư viện dựa trên Java phục vụ cho việc phát triển Android. Ví dụ của các thư viện này bao gồm các thư viện ứng dụng dùng để xây dựng giao diện người dùng, vẽ đồ họa hay truy cập cơ sở dữ liệu.
Một số thư viện chính của Android: Chương 2: Cơ sở lý thuyết 5 Báo cáo Khóa luận tốt nghiệp o android.app - Cung cấp quyền truy cập vào ứng dụng và là nền tảng của tất cả ứng dụng Android.content - Cung cấp quyền truy cập nội dung (content), truyền tải thông điệp giữa các ứng dụng hay các thành phần của ứng dụng.database - Đựoc sử dụng để truy cập dữ liệu của content provider và cơ sở dữ liệu SQLite o android.opengl - giao diện các phuơng thức Java để sử dụng OpenGL o android.os - Cung cấp các ứng dụng với quyền truy cập vào các dịch vụ của hệ điều hành bao gồm thông điệp, các dịch vụ hệ thống và các giao tiếp nội tại o android.text - Đựoc sử dụng để hiển thị và điều chỉnh chữ trên màn hình thiết bị.view - Các thành phần cơ bản trong việc xây dựng giao diện người dùng của ứng dụng.widget - Tập các thành phần giao diện người dùng đã được xây dựng sẵn như các nút, các nhãn (label), list view,.webkit - Tập các lớp cho phép xây dựng khả năng duyệt web.4 Android Runtime − Đây là phần thứ 3 của kiến trúc và nằm ở lớp thứ 2 từ dưới lên. Phần này cung cấp một bộ phận quan trọng là Dalvik Virtual Machine - là một loại Java Virtual Machine được thiết kế đặc biệt để tối ưu cho Android. − Dalvik VM sử dụng các đặc trưng của nhân Linux như quản lý bộ nhớ và đa luồng, những thứ mà đã có sẵn trong Java. Dalvik VM giúp mọi ứng dụng Android chạy trong tiến trình riêng của nó, với các thể hiện (instance) riêng của Dalvik Virtual Machine.
− Android Runtime cũng cung cấp một tập các thư viện chính giúp các nhà phát triển ứng dụng Android có thể viết ứng dụng Android bằng Java.5 Application Framework − Lớp Android Framework cung cấp các dịch vụ cấp độ cao hơn cho các ứng dụng dưới dạng các lớp Java. Các nhà phát triển ứng dụng được phép sử dụng các dịch vụ này trong ứng dụng của họ. − Android Framework bao gồm các dịch vụ chính sau: o Activity Manager: Kiểm soát tất cả khía cạnh của vòng đời ứng dụng và ngăn xếp các Activity. o Content Providers: Cho phép các ứng dụng chia sẻ dữ liệu với các ứng dụng khác.
o Resource Manager: Cung cấp quyền truy cập vào các tài nguyên như các chuỗi, màu sắc, các layout giao diện người dùng. Chương 2: Cơ sở lý thuyết 6 Báo cáo Khóa luận tốt nghiệp o Notifications Manager: Cho phép các ứng dụng hiển thị cảnh báo và các thông báo cho người dùng. o View System: Tập các thành phần giao diện (view) được sử dụng để tạo giao diện người dùng.6 Application Lớp trên cùng của kiến trúc là Application. Các ứng dụng được tạo ra sẽ được cài đặt trên lớp này.
Ví dụ như: Danh bạ, nhắn tin, trò chơi.2 Ngôn ngữ lập trình Java 2.1 Giới thiệu [2] − Java là một một ngôn ngữ lập trình hiện đại, bậc cao, hướng đối tượng, bảo mật và mạnh mẽ, và là một Platform. − Platform: Bất cứ môi trường phần cứng hoặc phần mềm nào mà trong đó có một chương trình chạy, thì được hiểu như là một Platform. Với môi trường runtime riêng cho mình (JRE) và API, Java được gọi là Platform. − Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystem do James Gosling khởi xướng và phát hành vào năm 1995.
Phiên bản mới nhất của Java Standard Edition là Java SE 8. Với sự tiến bộ của Java và sự phổ biến rộng rãi của nó, nhiều cấu hình đã được xây dựng để phù hợp với nhiều loại nền tảng khác nhau. Ví dụ: J2EE cho các ứng dụng doanh nghiệp, J2ME cho các ứng dụng di động. − Các phiên bản J2 mới đã được đổi tên thành Java SE, Java EE và Java ME.
Phương châm của java là "Write Once, Run Anywhere" - viết một lần chạy nhiều nơi, nghĩa là bạn chỉ cần viết một lần trên window chẳng hạn, sau đó vẫn chương trình đó bạn có thể chạy trên Linux, Android, các thiết bị J2ME.2 Chức năng [2] Ngôn ngữ lập trình java có các tính năng sau: − Hướng đối tượng - Trong Java, mọi thứ đều là một Object. Java có thể dễ dàng mở rộng và bảo trì vì nó được xây dựng dựa trên mô hình Object. − Nền tảng độc lập - Không giống nhiều ngôn ngữ lập trình khác bao gồm cả C và C ++, khi Java được biên dịch, nó không được biên dịch thành ngôn ngữ máy nền tảng cụ thể, thay vào mã byte - nền tảng độc lập. Mã byte này được thông dịch bởi máy ảo (JVM) trên nền tảng nào đó mà nó đang chạy.
− Đơn giản - Java được thiết kế để dễ học. Nếu bạn hiểu khái niệm cơ bản về OOP Java, sẽ dễ dàng hơn trong việc làm chủ Java. − Bảo mật - Với tính năng an toàn của Java, nó cho phép phát triển các hệ thống không có virut, giả mạo. Các kỹ thuật xác thực dựa trên mã hoá khóa công khai.
Chương 2: Cơ sở lý thuyết 7 Báo cáo Khóa luận tốt nghiệp − Kiến trúc - trung lập - Trình biên dịch Java tạo ra định dạng tệp đối tượng kiến trúc trung lập, làm cho mã biên dịch được thực thi trên nhiều bộ vi xử lý, với sự hiện diện của hệ điều hành Java. − Portable - Là kiến trúc tập trung và không có khía cạnh thực hiện phụ thuộc của đặc tả này làm cho Java khả chuyển. Trình biên dịch trong Java được viết bằng ANSI C, đó là một tập con POSIX. − Mạnh mẽ - Java làm nỗ lực để loại trừ các tình huống dễ bị lỗi bằng cách kiểm tra lỗi tại thời gian biên dịch và kiểm tra lỗi tại runtime.