2.4.1 Những yêu cầu để phát triển ứng dụng trên nền tảng Android:
Kiến thức lập trình ngôn ngữ Java.
Kiến thức về XML.
Một máy tính chạy hệ điều hành x86 như Windows, Linux hay MAC có cài đặt môi trường phát triển java (JDK).
Ngoài ra còn cần phải có một thiết bị chạy hệ điều hành Android để chạy thử ứng dụng.
2.4.2 Công cụ và môi trường phát triển ứng dụng Android.
JDK (Java Development Kit):là môi trường để viết các ứng dụng java.
Eclipse: phần mềm miễn phí dùng để viết ứng dụng java.
Android SDK (Software Developer Kit): là bộ công cụ dùng để phát triển ứng dụng cho hệ điều hành Android.
ADT Plugin (Android Development Tools): là một phần mở rộng của Eclipse chứa những thành phần trong Android SDK
Google còn phát hành một bộ công cụ lập trình Android Studio giúp các lập trình viên dễ dàng thiết kế và xây dựng ứng dụng.
Ngoài ra phiên bản 2015 của Visual Studio cũng hỗ trợ bộ công cụ lập trình Android.
2.5 SO SÁNH GIỮA CÁC HỆ ĐIỀU HÀNH DI ĐỘNG
Hiện nay có 3 hệ điều hành di động phổ biến nhất chiếm đến 96,9% là Android, IOS và Windows Phone.Mỗi hệ điều hành đều có những ưu và nhược điểm khác nhau.
Giống nhau:
o Đều là những phần mềm điều hành, quản lý các tài nguyên phần cứng cũng như phần mềm của thiết bị.
o Đều là môi trường giao tiếp giữa người dùng và phần cứng của thiết bị.
o Đều bị hạn chế về phần cứng của thiết bị như: màn hình, thời lượng pin, vi xử lý, bộ nhớ,v.v...
26
Khác nhau:
HĐH Ưu Điểm Nhược Điểm
Android Là hệ điều hành mã nguồn mở miễn phí Mã nguồn mở dễ phát sinh các vấn đề về bảo mật Tuỳ biến màn hình và cập nhật thời gian
thực
Tách rời hệ điều hành và phần cứng
Hệ thống thông báo nhanh Việc cập nhật cho các thiết bị không đồng đều dẫn đến tình trạng phân mảnh Khả năng đa nhiệm tốt
Chia sẻ mạnh với các thiết bị khác Tích hợp nhiều dịch vụ của Google Tích hợp với mạng xã hội rất tốt Tìm kiếm bằng giọng nói
Phù hợp với nhiều API trên nhiều nền tảng Kho ứng dụng với phong phú
IOS Tích hợp liền mạch phần mềm và phần cứng
Màn hình chủ khá lỗi thời, không sinh động, lỗi tương tác thời gian thực
Thống nhất về giao diện người dùng Không hỗ trợ Flash
Đồng bộ với máy tính Là mã nguồn đóng nên chỉ cho phép chạy trên các thiết bị của Apple
Tích hợp với mạng xã hội
Phù hơp với nhiều API trên nhiều nền tảng Kho ứng dụng phong phú và có chất lượng Khả năng đa nhiệm rất tốt
Windows Phone
Tuỳ biến màn hình và cập nhật theo thời gian thực
Phần cứng phân mảnh Tích hợp các ứng dụng phổ biến của
Microsoft
Giao diện người dùng kém trực quan
Phù hợp với giao diện đồ hoạ người dùng Tích hợp mạng xã hội không được tốt
Phù hợp với nhiều API trên nhiều nền tảng Hiệu suất điện năng tốt
Khả năng chạy đa nhiệm rất tốt
27
2.6 CẤU TRÚC CỦA MỘT ỨNG DỤNG ANDROID 2.6.1 Các thành phần của một ứng dụng android 2.6.1 Các thành phần của một ứng dụng android
Các thành phần tạo nên ứng dụng Android được chia làm 6 loại bao gồm:
Activity: là nền của 1 ứng dụng. Khi khởi động một ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác.
Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy. Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý
và chia sẻ dữ liệu giữa các ứng dụng.
Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các thông báo đi nhằm khởi tạo một Activity hay Service để thực hiện công việc mong muốn. Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới.
Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt động.
Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest. Actitvity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng dụng Android. Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng. Activity bao gồm 4 state:
-active (running): Activity đang hiển thị trên màn hình (foreground).
- paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus).
- stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop
- killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên.
Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó.
28
Hình 2.6.1 Biểu đồ miêu tả Activity State Vòng đời của Activity:
- Entire lifetime: Từ phương thức onCreate() cho tới onDestroy() .
- Visible liftetime: Từ phương thức onVisible() cho tới onInvisible().
- Foreground lifetime: Từ phương thức onBegin() cho tới onPause().
Khi xây dựng Actitvity cho ứng dụng cần phải viết lại phương thức onCreate( ) để thực hiện quá trình khởi tạo. Các phương thức khác có cần viết lại hay không tùy vào yêu cầu lập trình.
Android có cơ chế quản lý các process theo chế độ ưu tiên. Các process có priority thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài nguyên.
29
Foreground process: là process của ứng dụng hiện thời đang được người dùng tương tác.
Visible process: là process của ứng dụng mà activity đang hiển thị đối với người dùng (onPaused() của activity được gọi).
Service process: là Service đang running.
Background process: là process của ứng dụng mà các activity của nó ko hiển thị với người dùng (onStoped() của activity được gọi).
Empty process: process không có bất cứ 1 thành phần nào active. Theo chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các empty process.
2.6.2 Cấu trúc lưu trữ dự án Android.
Thành Phần Chức Năng
Thư mục mã nguồn (SRC):
Chứa toàn bộ các tập tin *.java có trong ứng dụng.Các tập tin này được tổ chức trong các Java Package.
Các Java Package chứa các tập tin *.java có chức năng liên quan với nhau để hệ thống có tính cấu trúc hơn.
Thư mục thư viện Android
Chứa các tập tin .jar, đây là bộ thư viện mà hệ điều hành Android hỗ trợ cho ứng dụng tuỳ theo Build Target của ứng dụng
Thư mục assets Thư mục này dùng để lưu trữ dữ liệu do lập trình viên tự định
nghĩa như tập tin HTTP, tập tin XML, tập tin văn bản, tập tin CSDL,.v.v...
Các tập tin này sẽ được ứng dụng truy xuất thông qua đối tượng Asset Manager của Android.
Việc truy xuất tài nguyên trong Assets thông qua việc đọc và lưu trữ các bit và byte
Thư mục RES Cũng giống như thư mục assets, đây là thư mục để lưu trữ các tài
nguyên của ứng dụng.
Thư mục này có thể lưu trữ bất cứ loại tài nguyên nào từ chuỗi cho tới hình ảnh và âm thanh.
Việc truy xuất tài nguyên trong RES thông qua IDs.Khi thêm tài vào thư mục RES,Android sẽ phát sinh một ID và lưu trữ ID này vào tập tin R.java và chỉ cần gọi ID này để truy xuất.
Thư mục BIN, LIBS, REFERENCED
LIBRARIES
Mặc định khi tạo ứng dụng thư mực BIN sẽ không hiển thị.Mục đích của thư viện này là để chứa các thư viện hỗ trợ phát triển ứng dụng.Các thư viện được thêm vào thư mục này không phải là thư viện của JDK hay Android SDK mà là một thư viện bên ngoài. Thư mục Referenced Libraries được tạo khii thêm thư viện vào thư mục Libs.
30
Thành Phần Chức Năng
Thư mục GEN
Thư mục này được tạo trong lần biên dịch đầu tiên của ứng dụng. Thư mục GEN chứa tập tin R.java dùng để lưu trữ các giá trị ID. Khi muốn truy xuất tài nguyên nào chỉ cần chỉ định giá trị ID tương ứng của tài nguyên đó
Tập tin Android Manifest.xml
- Đặt tên cho Java package của ứng dụng.
- Mô tả các thành .phần (component) của ứng dụng: activity, service, broadcast receiver hoặc content provider.
- Thông báo những permission mà ứng dụng cần có để truy nhập các protected API và tương tác với các ứng dụng khác.
- Thông báo những permission mà các ứng dụng khác cần có để tương tác với ứng dụng hiện thời.
- Thông báo level thấp nhất của Android API mà ứng dụng cần để chạy.
- Khai báo các thư viện mà ứng dụng sử dụng. - Khai báo quyền hạn của ứng dụng
Bảng 2.6.2.2 Cấu trúc lưu trữ dự án Android.
Cách tổ chức tài nguyên trong thư mục RES:
Thư mục con Loại tài nguyên lưu trữ
anim/ Các tập tin XML định nghĩa loạt ảnh (animation).
color/ Các tập tin XML định nghĩa danh sách màu.
drawable/ Các tập tin hình ảnh hoặc các tập tin XML có thể được biên dịch thành các tai nguyên hình ảnh.
Drawable-hdpi/ Các tập tin hình ảnh với độ phân giải cao.
Drawable-ldpi/ Các tập tin hình ảnh với độ phân giải thấp.
Drawable-mdpi/ Các tập tin hình ảnh với độ phân giải trung bình.
layout/ Các tập tin XML định nghĩa các giao diện trong dự án.
menu/ Các tập tin XML định nghĩa menu trong ứng dụng.
raw/ Các tập tin dữ liệu thô dùng trong ứng dụng.
values/ Các tập tin XML định nghĩa các giá trị đơn giản: Array.xml:chứa các tài nguyên mảng. Color.xml:chứa các định nghĩa màu sắc. Dimens.xml:định nghĩa các giá trị kích thước. String.xml định nghĩa các giá trị kiểu chuỗi. Style.xml:Định nghĩa tài nguyên về phong cách. Bảng 2.6.2.3 Cấu trúc lưu trữ trong thư mục RES.
31
2.7 CSDL SQLITE TRONG ANDROID 2.7.1 Giới thiệu về CSDL SQLite 2.7.1 Giới thiệu về CSDL SQLite
SQLite là một thư viện thực thi các chức năng của một database engine với đặc điểm giống như một phần mềm portable, không cần cài đặt, không cần cấu hình, không cần server, những điểm này rất khác so với việc sử dụng SQL Server hoặc Oracle, nhưng nó vẫn có transaction để đảm bảo tính toàn vẹn và an toàn trong quá trình thao tác dữ liệu. Có thể so sánh nó có một vài điểm giống với Access, nhưng nhìn chung vẫn có nhiều sự khác biệt.
Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà có thể sử dụng ngay. Dữ liệu database cũng được lưu ở một file duy nhất. Không có khái niệm user, password hay quyền hạn trong SQLite database. SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa và nhỏ thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm .v.v... và là sự lựa chọn phù hợp cho những người bắt đầu học database.
2.7.2 Chi tiết về các đặc tính của SQLite
Không cần phải thiết lập bất kỳ một cấu hình nào để có thể sử dụng SQLite.
Các HQTCSDL như SQL Server, Oracle, Postgre... thường cần một server riêng để triển khai ứng dụng, cài đặt database engine, các máy khách sẽ kết nối đến server để xử lý dữ liệu một cách tập trung. Tuy nhiên SQLite không làm việc theo cách này mà ứng dụng sẽ truy xuất trực tiếp vào file database, các máy khách cũng có thể truy xuất một file database SQLite để trên một server thông qua cơ chế chia sẻ và bảo mật file của hệ điều hành,người dùng nào truy cập được vào thư mục và có quyền đọc - ghi thì sẽ có thể đọc ghi vào file database SQLite. Tuy nhiên sẽ có những hạn chếnhất định.
Database do SQLite tạo ra là một file dữ liệu duy nhất.
Có thể copy file database SQLite từ hệ thống này sang hệ thống khác, từ hệ thống 32 hay 64 bit, từ phiên bản SQLite này sang phiên bản khác mà không cần chuyển đổi , nâng cấp hệ điều hành, cấu trúc hệ thống hay phải làm lại file database.
Cực kỳ nhỏ gọn và dễ sử dụng.
Số lượng kiểu dữ liệu của SQlite rất ít, điều này là một đặc trưng của nó, bởi trong SQLite, kiểu dữ liệu là một thuộc tính của chính giá trị được lưu chứ không phải là thuộc tính của cột lưu giá trị đó. Tuy vậy, cũng có một vài ràng buộc, là với cột khóa chính kiểu integer thì phải lưu giá trị phải chính xác là kiểu int, ngoài ra SQLite cũng cố gắng chuyển đổi kiểu của giá trị sang kiểu của cột lưu nó khi có thể. Mục đích của việc thiết kế kiểu dữ liệu như vậy nhằm làm cho nó tin cậy và đơn giản hóa việc sử dụng, và cũng để dễ tương thích hơn khi sử dụng với các ngôn ngữ như Tcl hoặc Python.
Dữ liệu lưu bao nhiêu thì hệ thống cấp phát cho bấy nhiêu không gian bộ nhớ cho từng dòng dữ liệu, không cấp phát thừa hoặc thiếu không gian lưu trữ cho dữ liệu, nhờ đó mà file database trở nên nhỏ gọn và tốc độ xử lý dữ liệu cũng nhanh hơn.
32
SQLite thích hợp sử dụng trong các trường hợp như:
o Ứng dụng sử dụng dạng flat file để lưu trữ dữ liệu: như từ điển, các ứng dụng nhỏ, lưu cấu hình ứng dụng... Nó mạnh mẽ hơn nhiều kỹ thuật lưu trữ file thông thường..
o Sử dụng trong các thiết bị nhúng: smart phone, PDA và các thiết bị di động rất phù hợp với SQLite.
o Các website có khoảng 100 nghìn lượt xem/ ngày, mặc dù về mặt lý thuyết thì SQLite có thể đáp ứng gấp 10 lần con số này.
o Là thay thế hoàn hảo cho database dạng file: nhiều ứng dụng sử dụng fopen(), fread(), fwrite() để lưu trữ dữ liệu, SQLite sẽ thay thế hoàn toàn kỹ thuật đó bằng kỹ thuật hiện đại hơn, dễ dùng và tin cậy hơn.
o Sử dụng làm database tạm để lưu trữ dữ liệu lấy về từ các database trên SQL server, Oracle...
o Làm database demo cho các ứng dụng lớn, dùng để làm mô hình khái niệm cho ứng dụng.
o Dùng cho giảng dạy: để giảng dạy cho những người mới làm quen với ngôn ngữ truy vấn SQL.
33
2.8 KIẾN THỨC VỀ PHP,MYSQL VÀ JSON. 2.8.1 PHP 2.8.1 PHP
Giới thiệu:
PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
Những ưu điểm của PHP
Được sử dụng rộng rãi, miễn phí, cấu hình nhanh chóng, nhỏ gọn.
Có khả năng đạt hiệu suất cao trong làm việc.
Dễ sử dụng.
Là một dự án mã nguồn mở. Ngôn ngữ này được phát triển bởi một đội ngũ những người tình nguyện trên toàn cầu.
Yêu cầu của ứng dụng là phải có một web service chạy bằng ngôn ngữ PHP nên những kiến thức về lập trình web bằng PHP là rất quan trọng để ứng dụng và web service có thể giao tiếp tốt với nhau.
2.8.2 MySQL
Giới thiệu:
MySQLlà hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.