Tổng quan về Android Studio

Một phần của tài liệu Ứng dụng điểm danh CLASS ART (khóa luận tốt nghiệp) (Trang 32)

3.2.1. Khái niệm

Android Studio là IDE chính thức được sử dụng trong phát triển ứng dụng Android dựa trên IntelliJ IDEA. Chức năng chính của Android Studio là cung cấp các giao diện giúp người dùng có thể tạo các ứng dụng và xử lý các công cụ file phức tạp sau hậu trường. Ngôn ngữ lập trình được sử dụng trong Android Studio là Java và nó sẽ được cài đặt sẵn trên thiết bị của bạn. Khi sử dụng Android Studio thì bạn chỉ cần viết, chỉnh sửa và lưu trữ chúng trên các dự án của mình và các file nằm trong dự án đó. Đồng thời, Android Studio còn cung cấp quyền truy cập vào Android SDK.

Hình 3-6 Android Studio ? Nguồn: developer.android.com/studio

3.2.2. Lịch sử hình thành Android Studio

Android Studio chính thức được công bố tại hội nghị Google I/O vào năm 2013 và được phát hành vào năm 2014 với nhiều những phiên bản khác nhau.

Trước khi có Android Studio thì nhà phát triển của Android sẽ thường dùng các công cụ như Eclipse IDE hoặc một IDE Java chung nhằm hỗ trợ cho nhiều ngôn ngữ lập trình khác nữa.

Android Studio sẽ giúp bạn thực hiện việc tạo ra các ứng dụng dễ hơn so với những phần mềm chuyên dụng khác. Và tất nhiên với những người mới sử dụng thì sẽ phải học rất nhiều thứ hoặc có thể tìm hiểu thông qua những thông tin có sẵn.

Để tạo ra được Android Studio hoàn thiện nhất đến tay người sử dụng thì những nhà phát triển đã phải cố gắng nỗ lực cống hiến hết mình.

3.2.3. Ưu và nhược điểm của Android Studio

Ưu điểm:

o Được phát triển bởi chính Google, cũng là chủ sở hữu hệ điều hành Android.

o Các gói công cụ hỗ trợ được cập nhật đầy đủ và mới nhất.

o Giao diện và tính năng dễ làm quen và sử dụng của nó là một điểm cộng lớn.

o Tài liệu tham khảo và hướng dẫn rõ ràng và đầy đủ trên trang chủ, cũng như và có vô số diễn đàn dành cho các lập trình viên Android.

Nhược điểm:

o Vì nó là bộ công cụ tích hợp tất cả, nên nó buộc phải tải toàn bộ những dữ liệu hỗ trợ cho việc phát triển ứng dụng tối ưu nhất. Đó là lượng dữ liệu lớn chiếm dụng không ít không gian bộ nhớ lưu trữ máy tính của bạn

o Android Studio là một phần mềm phát triển ứng dụng mà ở đó bạn có thể kiểm tra cách hoạt động của app ngay trên máy tính thông qua trình giả lập của Android Studio. Và nó chính là nguyên nhân gây đơ máy, lag, nóng hay hao pin trên laptop

32

3.3 Tổng quan Công nghệ WLAN (Mạng cục bộ không dây) 3.3.1. Khái niệm 3.3.1. Khái niệm

WLAN là phương thức phân phối mạng không dây cho phép nhiều thiết bị kết nối với Internet bằng cách sử dụng các giao thức chuẩn

Hình 3-7 Mô hình Wireless Lan Nguồn: heavy.ai

Thay vì kết nối bằng mạng cục bộ truyền thống với dây cáp, mạng cục bộ không dây hay WLAN sử dụng tín hiệu radio hoặc hồng ngoại để cung cấp liên lạc đến thiết bị. Điều này cho phép chúng giao tiếp và kết nối không dây trong khoảng cách ngắn.

3.3.2. Lịch sử WLAN

Hình 3-8 Wireless Lan Nguồn: rfwireless-world.com

Ra đời từ năm 1990, đến nay, công nghệ WLAN, với những tính năng nổi bật của nó đã được ứng dụng rộng rãi. Hãy cùng chúng tôi điểm lại lịch sử hình thành và phát triển của mạng WLAN qua các cột mốc thời gian dưới đây:

− Năm 1990: công nghệ WLAN ra đời. Sản phẩm hoạt động trong băng tần 900Mhz, cung cấp tốc độ truyền dữ liệu 1Mbps. Thấp hơn nhiều so với tốc độ 10Mbps của hầu hết các mạng cáp tại thời điểm đó.

− Năm 1992: giải pháp mạng WLAN được được bán với băng tần 2.4Ghz. Tần số của mạng WLAN vẫn chưa được thống nhất giữa các nhà sản xuất và vẫn chưa được công bố rộng rãi.

− Năm 1997, IEEE (Institute of Electrical and Electronics Engineers) đã phê chuẩn sự ra đời của chuẩn 802.11. Chuẩn 802.11 hỗ trợ 3 phương pháp truyền tín hiệu. Trong đó có bao gồm phương pháp truyền tín hiệu vô tuyến ở tần số 2.4Ghz.

− Năm 1999, IEEE thông qua 2 sự bổ sung cho chuẩn 802.11 là các chuẩn 802.11a và 802.11b. Trong đó 802.11b có tốc độ truyền dữ liệu lên tới 11Mbps. Những thiết bị WLAN dựa trên chuẩn 802.11b đã nhanh chóng trở thành công nghệ không dây vượt trội.

− Năm 2003, IEEE công bố thêm một sự cải tiến là chuẩn 802.11g mà có thể truyền nhận thông tin ở cả hai dãy tần 2.4Ghz và 5Ghz với tốc độ truyền dữ liệu lên đến 54Mbps.

3.3.3. Ưu và nhược điểm của mạng WLAN

Ưu điểm:

o Sự tiện lợi: Mạng WLAN cho phép kết nối đa thiết bị và không giới hạn số lượng thiết bị được phép kết nối.

o Khả năng di động: Sự phát triển của các mạng không dây công cộng cho phép người dùng có thể truy cập Internet ở bất cứ đâu.

o Triển khai dễ dàng: Mạng không dây chỉ cần một điểm truy cập. Với mạng dùng cáp, người dùng có thể tốn thêm các chi phí lắp đặt và triển khai hệ thống.

34

o Khả năng mở rộng: Mạng không dây có thể đáp ứng tức thì khi gia tăng số lượng người dùng thay vì phải trang bị thêm cáp.

Nhược điểm

o Bảo mật: Môi trường kết nối không dây cho phép việc hack một mạng WLAN dễ dàng hơn.

o Phạm vi: Mạng WLAN có phạm vi hoạt động nhỏ tầm vài chục mét vuông. Đối với một không gian lớn, người dùng cần phải mua thêm repeater hay điểm truy cập AP (Access Point).

o Độ tin cậy: Vì sử dụng sóng vô tuyến nên việc bị nhiễu sóng, giảm tín hiệu là điều không tránh khỏi.

o Tốc độ: Tốc độ của mạng không dây chậm so với mạng sử dụng cáp, khi có nhiều người truy cập mạng sẽ yếu và truy cập không ổn định.

3.4 Tổng quan Mô hình Client – Server

Hình 3-9 Mô hình Cilent-Server Nguồn: heavy.ai

3.4.1 Khái niệm

tán. Nó phân vùng các nhiệm vụ hay workload giữa các nhà cung cấp tài nguyên hoặc dịch vụ, gọi là server, và người yêu cầu dịch vụ (Client).

Trong kiến trúc Client Server, khi máy Client gửi yêu cầu dữ liệu đến Server thông qua Internet, server sẽ chấp nhận quy trình được yêu cầu. Sau đó gửi các gói dữ liệu được yêu cầu trở lại client. Client không chia sẻ bất kỳ tài nguyên nào của họ.

3.4.2 Nguyên tắc hoạt động của mô hình Client – Server

− Client: Khi nói đến Client (khách hàng), thì nó có nghĩa là một người hay một tổ chức sử dụng một dịch vụ cụ thể nào đó. Trong thế giới kỹ thuật số cũng tương tự như vậy. Client là một máy tính (Host), tức là có khả năng nhận thông tin hoặc sử dụng một dịch vụ cụ thể từ các nhà cung cấp dịch vụ (Server).

− Server: Tương tự như vậy, khi nói đến Server thì nó có nghĩa là một máy chủ hay một phương tiện phục vụ các dịch vụ nào đó. Trong lĩnh vực công nghệ thì Server là một máy tính từ xa. Nó cung cấp các thông tin (dữ liệu) hoặc quyền truy cập vào các

3.4.3 Ưu và nhươc điểm của mô hình Client-Server

Hình 3-10 Mô hình Cilent-Server Nguồn: heavy.ai

Ưu điểm:

o Tập trung: Ưu điểm chính của mô hình mạng khách chủ là khả năng kiểm soát tập trung (Centralization) được tích hợp sẵn. Với mô hình này, tất cả thông tin cần thiết đều được đặt ở một vị trí duy nhất. Việc này rất hữu ích cho những

36

quản trị viên mạng. Vì họ có được toàn quyền quản lý và điều hành.

o Bảo mật : Trong mạng Client Server, dữ liệu được bảo vệ tốt do kiến trúc tập trung của mạng. Nó có thể được áp dụng các biện pháp kiểm soát truy cập, sao cho chỉ những người dùng được ủy quyền mới có thể truy cập.

o Khả năng mở rộng: Mô hình mạng Client server có khả năng mở rộng tốt. Bất cứ khi nào người dùng cần, họ có thể tăng số lượng tài nguyên, chẳng hạn như số Client hay Server. Do đó có thể dễ dàng tăng kích thước của Server mà không bị gián đoạn nhiều.

o Khả năng truy cập: Không có sự phân biệt giữa các vị trí hay nền tảng khác nhau, mọi client đều có thể đăng nhập vào hệ thống. Bằng cách này, tất cả nhân viên đều có thể truy cập thông tin của công ty của họ, không cần phải dùng một terminal mode hay một bộ xử lý nào.

Nhược điểm

o Tắc nghẽn lưu lượng: Nếu có quá nhiều Client tạo request từ cùng một Server, nó có thể làm chậm kết nối. Hoặc tệ hơn là dẫn đến hiện tượng crash. Một server bị quá tải có thể tạo ra nhiều vấn đề trong việc truy cập thông tin.

o Độ bền: Mạng Client Server là mạng tập trung. Nên nếu Server chính xảy ra sự cố hay bị nhiễu, toàn bộ hệ thống mạng sẽ bị gián đoạn. Do đó, các mạng client server sẽ thiếu tính ổn định và độ bền.

o Chi phí: Chi phí thiết lập và bảo trì server trong các mạng client server thường khá cao. Vì các hệ thống mạng có sức mạnh lớn có thể có giá rất đắt. Do đó, không phải tất cả người dùng đều có thể chi trả được.

o Bảo trì: Khi các Server được triển khai, nó sẽ hoạt động không ngừng nghỉ. Có nghĩa là nó cần được quan tâm đúng mức nếu có bất kỳ vấn đề gì thì phải giải quyết ngay. Vì vậy, cần có một nhà quản lý mạng chuyên biệt để duy trì hoạt động của Server.

o Tài nguyên: Không phải tất cả tài nguyên hiện có ở trên Server đều có thể sử dụng được. Ví dụ như bạn không thể in trực tiếp tài liệu trên web, hoặc chỉnh sửa bất kỳ thông tin nào trên ổ cứng của Client.

3.5 Tổng quan Cơ sở dữ liệu MongoDB (NoSQL) 3.5.1 Khái niệm MongoDB 3.5.1 Khái niệm MongoDB

Hình 3-11 MongoDB Nguồn: mongodb.com

MongoDB là phần mềm cơ sở dữ liệu mã nguồn mở NoSQL hỗ trợ đa nền tảng được thiết kế theo hướng đối tượng.

3.5.2 Khái niệm NoSQL

Hình 3-12 Is MongoDB NonSQL Nguồn: mongodb.com

38

NoSQL (Non-Relational SQL) là dạng cơ sở dữ liệu mã nguồn mở được ra đời như một mô hình tiến bộ hơn về tốc độ, tính năng,… so với hệ quản trị cơ sở dữ liệu quan hệ RDBMS. NoSQL có kiểu dữ liệu JSON. Đây là dạng dữ liệu kiểu key và value cùng với hiệu suất nhanh và khả năng mở rộng không bị ràng buộc bởi việc tạo khóa ngoại, khóa chính,… nên được ưa chuộng và sử dụng rất phổ biến.

3.6 Tổng quan kiến thức Docker 3.6.1. Khái niệm 3.6.1. Khái niệm

Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng dễ

dàng hơn bằng cách sử dụng các containers (trên nền tảng ảo hóa). Ban đầu viết bằng Python, hiện tại đã chuyển sang Golang.

3.6.2. Ưu điểm của Docker

Tính dễ ứng dụng: Docker rất dễ cho mọi người sử dụng từ lập trình viên, sys

admin… nó tận dụng lợi thế của container để build, test nhanh chóng. Có thể đóng gói ứng dụng trên laptop của họ và chạy trên public cloud, private cloud… Câu thần chú là “Build once, run anywhere”.

Tốc độ: Docker container rất nhẹ và nhanh, bạn có thể tạo và chạy docker

container trong vài giây.

Môi trường chạy và khả năng mở rộng: Bạn có thể chia nhỏ những chức năng

của ứng dụng thành các container riêng lẻ. Ví dụng Database chạy trên một container và Redis cache có thể chạy trên một container khác trong khi ứng dụng Node.js lại chạy trên một cái khác nữa. Với Docker, rất dễ để liên kết các container với nhau để tạo thành một ứng dụng, làm cho nó dễ dàng scale, update các thành phần độc lập với nhau.

3.6.3 Mô hình Docker

Hình 3-13 Mô hình Docker

Nguồn: docs.docker.com

Docker Engine : là thành phần chính của Docker, như một công cụ để đóng gói ứng

dụng

Docker Hub : là một “github for docker images”. Trên DockerHub có hàng ngàn

public images được tạo bởi cộng đồng cho phép bạn dễ dàng tìm thấy những image mà bạn cần. Và chỉ cần pull về và sử dụng với một số config mà bạn mong muốn.

Images: là một khuôn mẫu để tạo một container. Thường thì image sẽ dựa trên 1

image có sẵn với những tùy chỉnh thêm. Ví dụ bạn build 1 image dựa trên image Centos mẫu có sẵn để chạy Nginx và những tùy chỉnh, cấu hình để ứng dụng web của bạn có thể chạy được. Bạn có thể tự build một image riêng cho mình hoặc sử dụng những image được chia sẽ từ cộng đồng Docker Hub. Một image sẽ được build dựa trên những chỉ dẫn của Dockerfile.

Container: là một instance của một image. Bạn có thể create, start, stop, move or

delete container dựa trên Docker API hoặc Docker CLI.

40

Docker Daemon: lắng nghe các yêu cầu từ Docker Client để quản lý các đối tượng

như Container, Image, Network và Volumes thông qua REST API. Các Docker Daemon cũng giao tiếp với nhau để quản lý các Docker Service.

Dockerfile: là một tập tin bao gồm các chỉ dẫn để build một image .

Volumes: là phần dữ liệu được tạo ra khi container được khởi tạo.

3.6.4. Quy trình thực thi của một hệ thống sử dụng Docker

Hình 3-14 Quy trình thực thi hệ thống sử dụng Docker

Nguồn: docs.docker.com

Build: Đầu tiên tạo một dockerfile, trong dockerfile này chính là code của chúng ta. Dockerfile này sẽ được Build tại một máy tính đã cài đặt Docker Engine. Sau khi build ta sẽ có được Container, trong Container này chứa ứng dụng kèm bộ thư viện của chúng ta.

Push: Sau khi có được Container, chúng ta thực hiện push Container này lên cloud và lưu tại đó.

Pull, Run: Nếu một máy tính khác muốn sử dụng Container chúng ta thì bắt buộc máy phải thực hiện việc Pull container này về máy, tất nhiên máy này cũng phải cài Docker Engine. Sau đó thực hiện Run Container này.

3.7 Tổng quan Python FastAPI3.7.1. Khái niệm 3.7.1. Khái niệm

Hình 3-15 FastAPI

Nguồn: fastapi.tiangolo.com

FastAPI là nền tảng thiết kế, lập trình xây dựng API cực kỳ nhanh trên cả 2 phương diện phát triển và thực thi trên Python 3.6+.

Đặc điểm:

Fast: Hiệu suất cao ngang với NodeJS và Go.

Fast to code: Code nhanh hơn, tốc độ code các features tăng khoảng 200 đến 300 %.

Fewer bugs: do đơn giản nên giảm số bugs của developper đến 40%.

Intuitive: hỗ trợ code dễ hơn với tự động gợi ý, debug cần ít thời gian hơn so với

trước.

Easy: được thiết kế sao cho dễ dùng dễ học.

Short: Tối thiểu việc lặp code. Các tham số truyền vào có nhiều tính năng. Ít bugs.

42

3.7.2. Ưu điểm của FastAPI

Hình 3-16 Hiệu suất của FastAPI

Nguồn: techempower.com

− High performance Do được base trên 2 lib khá mạnh ở thời điểm hiện tại của python là Pydantic và Starlette nên FastAPI sở hữu hiệu suất cao nhất trong tất cả các

framework Python hiện nay

− Development Speed Được hỗ trợ tích hợp sẵn giao diện Swagger – OpenAPI kèm theo cách code khá đơn giản nên lập trình có thể release function rất nhanh mà vẫn có document đầy đủ, đây là lợi thế có thể nói là quan trọng nhất của FastAPI so với các Framework khác. Dưới đây là một đoạn code in ra dòng text healthcheck

Hình 3-17 Đoạn code in ra dòng text healthcheck

Nguồn: fastapi.tiangolo.com

− Bất đồng bộ Hiện tại bất đồng bộ đã được hỗ trợ từ phiên bản Django 3.x nhưng ngay từ khi release, FastAPI mặc định đã hỗ trợ developer Async, cũng vì vậy mà FastAPI chỉ có thể sử dụng với python3.6 trở lên.

3.7.3. FastAPI CLI

FastAPI được build dựa trên OpenAPI (trước có tên Swagger), phần web được support bởi Starlette, còn phần data được support bởi Pydantic.

ASGI kế thừa từ WSGI. Mà WSGI là 1 chuẩn giao tiếp giữa web server và Python application server. Trước thì có mod_python của Apache nhưng do không phát triển và không an toàn nên WSGI sinh ra. WSGI có những tác dụng như sau:

Một phần của tài liệu Ứng dụng điểm danh CLASS ART (khóa luận tốt nghiệp) (Trang 32)

Tải bản đầy đủ (PDF)

(61 trang)