1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu hệ điều hành android và xây dựng phần mềm chát nội bộ

47 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 1,55 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG I. TÌM HIỂU VỀ HỆ ĐIỀU HÀNH ANDROID (8)
    • 1.1. Android là gì? (8)
    • 1.2. Lịch sử của Android (8)
    • 1.3. Một số phiên bản h điều hành Android (0)
    • 1.4. Kiến trúc của Android (20)
      • 1.4.1. Tầng ứng dụng Android (20)
      • 1.4.2. Application framework (21)
      • 1.4.3. Library và android runtime (21)
      • 1.4.4. Linux kernel (22)
    • 1.5. Eclipse adding J2EE & Tomcat 7 Support (22)
    • 1.6. Các thành phần trong một Android Project (23)
      • 1.6.1. AndroidManifest.xml (23)
      • 1.6.2. File R.java (24)
    • 1.7. Chu kỳ ứng dụng Android (25)
      • 1.7.1. Chu kỳ sống thành phần (25)
      • 1.7.2. Acitivity Stack (26)
      • 1.7.3. Các trạng thái của chu kỳ (26)
  • CHƯƠNG II: CHƯƠNG TRÌNH (27)
    • 2.1. Giới thi u (27)
    • 2.2. Giới thi u về Socket (0)
      • 2.2.1. Socket là (27)
      • 2.2.2. Khái ni m về địa chỉ và cổng (Address, Port ) (0)
    • 2.3. Máy ảo trên GENYMOTION (29)
    • 2.4. Các b ớc tiến hành (0)
  • KẾT LUẬN (46)
    • 1. Kết quả đạt đ ợc của đề tài (0)
    • 2. Hạn chế của đề tài (46)

Nội dung

TÌM HIỂU VỀ HỆ ĐIỀU HÀNH ANDROID

Android là gì?

Android là hệ điều hành di động được phát triển bởi Google, dựa trên nền tảng Linux kernel và phần mềm mã nguồn mở, dành cho các thiết bị như smartphone, tablet và netbook.

Android là h điều hành mở mã nguồn chính duy nh t với 12 tri u dòng mã bao gồm 3 tri u dòng mã XML, 2.8 tri u dòng mã C, 2.1 tri u dòng Java và 1.75 tri u dòng C++

Nền tảng Android, được phát triển bởi Android Inc và sau đó mua lại bởi Google, hiện là phần mềm hàng đầu trong liên minh OHA với khoảng 78 thành viên, bao gồm nhà sản xuất và nhà phát triển ứng dụng Android được thiết kế để cạnh tranh với các hệ điều hành di động khác như iOS, BlackBerry OS, Windows Mobile, Symbian, Bada và WebOS Đến nay, Android đã trở thành nền tảng di động phát triển nhanh nhất trên toàn cầu.

Lịch sử của Android

Tháng 10/2003 Android (Inc) đ ợc thành lập tại Palo Alto, California, Hoa

Andy Rubin, đồng sáng lập của Danger Inc, cùng với Rich Miner, đồng sáng lập Wildfire Communications Inc và cựu phó chủ tịch công nghệ tương lai tại Orange, đã chủ trì một nhóm các thành viên khác với mục tiêu phát triển các thiết bị di động thông minh hơn, phục vụ lợi ích của con người.

B ớc đầu, h điều hành Android chỉ đơn thuần là phần mềm trên đi n thoại di động

Android là hệ điều hành cho thiết bị cầm tay dựa trên lõi Linux, được thiết kế bởi công ty Android Inc tại California, Mỹ Năm 2005, Google đã mua lại công ty này và bắt đầu phát triển nền tảng Android Các thành viên chủ chốt của Android Inc bao gồm Andy Rubin, Rich Miner, Nick Sears và Chris White.

Dưới sự lãnh đạo của Rubin, nhóm kỹ sư tại Google đã phát triển một nền tảng di động dựa trên hạt nhân Linux Họ đã giới thiệu nền tảng này cho các nhà sản xuất thiết bị cầm tay và các nhà mạng, nhấn mạnh tính linh hoạt và khả năng mở rộng cao của hệ thống.

Google đã công bố danh sách các thành phần phần cứng tương thích với nền tảng của mình và cam kết hợp tác với các đối tác phần mềm cũng như các nhà mạng ở nhiều cấp độ khác nhau Gần đây, nhiều nguồn tin cho biết Google sẽ sớm tham gia vào việc phát triển hệ điều hành riêng cho điện thoại di động Vào tháng 9/2007, InformationWeek đã đăng tải một nghiên cứu của Evalueserve, cho thấy Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động.

In November 2007, the Open Handset Alliance was established with the collaboration of major companies including Texas Instruments, Broadcom, Google, HTC, Intel, LG, Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, and T-Mobile, aiming to develop open standards for mobile devices.

Android đã chính thức gia nhập Liên minh thiết bị cầm tay mã nguồn mở, đánh dấu bước tiến quan trọng của Google trong việc phát triển hệ điều hành mã nguồn mở cho thiết bị di động Mục tiêu của Google là cạnh tranh với các đối thủ như Symbian và Windows Mobile.

Hãng cũng giới thi u sản phẩm Android đầu tiên là T-Mobile G1 Đ y l

Từ tháng 10/2008, hệ điều hành Android đã chính thức trở thành phần mềm mã nguồn mở, cho phép các công ty thứ ba tự do phát triển và bán ứng dụng của riêng họ mà không cần sự chấp thuận từ Google.

Vào tháng 11/2008, Liên minh OHA đã giới thiệu gói phát triển phần mềm Android SDK dành cho các lập trình viên Đến tháng 12/2008, dự án Android chào đón thêm 14 thành viên mới, bao gồm ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, và Vodafone Group Plc.

Vào tháng 2 năm 2009, Qualcomm và Texas Instruments đã phát triển những con chip chạy phiên bản đơn giản của hệ điều hành Android, mang đến trải nghiệm mới cho người dùng toàn cầu Đến năm 2010, số lượng smartphone chạy nền tảng Android đã tăng trưởng mạnh mẽ, với sự tham gia của nhiều nhà sản xuất hàng đầu như Samsung, HTC và Motorola Android được xem như "cứu cánh" cho nhiều công ty công nghệ, giúp họ cải thiện doanh số và lợi nhuận sau thời gian dài trì trệ, đặc biệt là Motorola.

1.3 Một số phiên bản hệ điều hành Android

Kể từ khi ra mắt phiên bản đầu tiên, Android đã trải qua nhiều bản nâng cấp, chủ yếu tập trung vào việc sửa lỗi và bổ sung các tính năng mới.

Hình 1.2 Logo các phiên bản hệ điều hành Android

Android ra mắt phiên bản đầu tiên 1.0 vào tháng 9 năm 2008 và 1.1 vào tháng 2 năm 2009 mà chưa có tên gọi chính thức Từ phiên bản tiếp theo, mỗi bản nâng cấp đều được đặt tên riêng dựa trên các món ăn hấp dẫn theo thứ tự bảng chữ cái từ "C-D-E-F-G-H-I" Hiện tại, các phiên bản chính của Android đã được xác định rõ ràng.

Phiên bản 1.5 (Cupcake) ra mắt vào tháng 4/2009, nổi bật với nhiều tính năng đáng chú ý như khả năng ghi lại và xem video qua chế độ máy ghi hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại Ngoài ra, phiên bản này còn tích hợp bàn phím ảo với khả năng đoán trước văn bản, tự động kết nối với thiết bị Bluetooth trong khoảng cách nhất định, cùng với các widget và mục mới có thể được cài đặt linh hoạt trên màn hình chủ.

Phiên bản 1.6 (Donut) ra mắt vào tháng 9/2009 đã nâng cao trải nghiệm người dùng trên kho ứng dụng Android Market Phiên bản này tích hợp giao diện tùy biến, cho phép người dùng xóa nhiều ảnh cùng lúc, cải thiện tính năng Voice Search, và nâng cao khả năng tìm kiếm bookmarks, lịch sử, danh bạ và web trên màn hình chủ, đồng thời hỗ trợ màn hình có độ phân giải WVGA.

Phiên bản Android 2.0/2.1 (Eclair) ra mắt vào tháng 10/2009 mang đến nhiều cải tiến đáng kể, bao gồm giao diện người dùng thân thiện hơn và tối ưu hóa tốc độ phần cứng Phiên bản này hỗ trợ nhiều kích thước và độ phân giải màn hình, cải thiện trải nghiệm duyệt web với chuẩn HTML5, tích hợp Exchange ActiveSync 2.5, nâng cấp Google Maps lên phiên bản 3.1.2, cũng như cải thiện camera với zoom kỹ thuật số và đèn flash Bên cạnh đó, bàn phím ảo cũng được nâng cấp và kết nối Bluetooth 2.1 được hỗ trợ.

Android 2.2 Froyo, ra mắt vào tháng 5 năm 2010, tập trung vào việc cải thiện tốc độ xử lý và giới thiệu engine Chrome V8 JavaScript Phiên bản này hỗ trợ Adobe Flash 10.1 và cho phép tạo điểm truy cập Wi-Fi Một tính năng nổi bật là khả năng chuyển đổi nhanh giữa các ngôn ngữ và từ điển, đồng thời cho phép cài đặt và cập nhật ứng dụng trên các thiết bị mở rộng bộ nhớ LG Optimus One là một trong những smartphone đầu tiên chạy phiên bản Android 2.2 Froyo.

Kiến trúc của Android

Mô hình sau thể hi n một cách tổng quát các thành phần của h điều hành Android Mỗi một phần sẽ đ ợc đặc tả một cách chi tiết d ới đ y

Hình 1.15 C u trúc stack h thống Android

Android tích hợp sẵn nhiều ứng dụng cơ bản như danh bạ, trình duyệt, máy ảnh và điện thoại Tất cả các ứng dụng hoạt động trên hệ điều hành Android đều được phát triển bằng ngôn ngữ Java.

Android cung cấp một nền tảng phát triển mở, cho phép các nhà phát triển xây dựng ứng dụng phong phú và sáng tạo Họ có thể tận dụng các thiết bị phần cứng, thông tin địa điểm, dịch vụ chạy nền, thiết lập hệ thống báo động và thêm thông báo vào thanh trạng thái, mở ra nhiều cơ hội phát triển ứng dụng đa dạng.

Nhà phát triển có thể sử dụng các API trong cùng một khuôn khổ với các ứng dụng lõi, giúp đơn giản hóa việc tái sử dụng các thành phần Bất kỳ ứng dụng nào cũng có thể xuất bản khả năng của mình để các ứng dụng khác sử dụng, với các hạn chế bảo mật được thực thi bởi khuôn khổ Cơ chế này cho phép người dùng thay thế các thành phần tương tự một cách linh hoạt.

Tất cả các ứng dụng đều bao gồm một bộ dịch vụ và hệ thống, trong đó có nhiều loại View có khả năng kế thừa lẫn nhau, phục vụ cho việc thiết kế giao diện ứng dụng, chẳng hạn như GridView, TableView và LinearLayout.

Một "Content Provider" cho phép các ứng dụng truy cập dữ liệu từ các ứng dụng khác, như Danh bạ, và chia sẻ dữ liệu giữa các ứng dụng này.

 Một ―Resource Manager‖ cung c p truy xu t tới các tài nguyên không phải là mã nguồn, chẳng hạn nh : localized strings graphics and layout files

 Một ―Notifycation Manager‖ cho phép t t cả các ứng dụng hiển thị các custom alerts trong status bar

Activity Manager đ ợc dùng để quản lý chu trình sống của ứng dụng và điều h ớng các activity

Android bao gồm một tập hợp các thành phần C/C++ được sử dụng bởi nhiều bộ phận khác nhau trong hệ thống Android, điều này được thể hiện qua nền tảng ứng dụng Android Dưới đây là một số thành phần cơ bản.

 System C library: a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices

Media Libraries, powered by PacketVideo's OpenCORE, enable seamless playback and recording of various popular audio and video formats, along with static image files Supported formats include MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG, ensuring a versatile multimedia experience.

 Surface Manager - Quản lý vi c truy xu t vào h thống hiển thị

 LibWebCore - a modern web browser engine which powers both the

Android browser and an embeddable web view

 SGL - the underlying 2D graphics engine 3D libraries - an implementation based on OpenGL ES 1.0 APIs, the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer

 FreeType - bitmap and vector font rendering

 SQLite - a powerful and lightweight relational database engine available to all applications

Android is built on the Linux 2.6 kernel, which serves as the core service layer for essential functions such as security, memory management, process management, network stack, and driver model The Linux kernel acts as an abstraction layer between hardware and the rest of the software stack, enabling low-level applications to adapt flexibly to the hardware It interacts with all applications and operates in user mode, allowing other processes, known as servers, to receive information from various components through inter-process communication (IPC).

Eclipse adding J2EE & Tomcat 7 Support

Eclipse được xem như một "Apache cho các công cụ phát triển", là một khung mã nguồn mở cung cấp nhiều dịch vụ thiết yếu cho các nhà phát triển phần mềm Nó không chỉ đơn thuần là một bộ API, mà còn là một bộ công cụ toàn diện để thiết kế các bộ công cụ, bao gồm mã thực hiện nhằm phục vụ cho công việc phát triển.

Nền tảng Eclipse là cơ sở cho việc xây dựng và chạy các công cụ phát triển phần mềm tích hợp, từ đầu đến cuối Nó bao gồm các thành phần phần mềm mã nguồn mở mà các nhà cung cấp công cụ sử dụng để phát triển các giải pháp cắm thêm vào các bàn làm việc (Workbench) phần mềm tích hợp Công nghệ của nền tảng Eclipse được thể hiện thông qua một khung công tác được thiết kế và triển khai rõ ràng.

Các IDE Eclipse đi kèm với SDK Android nhưng không hỗ trợ J2EE và máy chủ Tomcat Để sử dụng J2EE và Tomcat, người dùng cần mở rộng thêm Một lựa chọn khác là tải xuống một phiên bản hỗ trợ J2EE, nhưng nhiều người muốn sử dụng Eclipse để hỗ trợ cả Android và J2EE thay vì phải sử dụng hai IDE khác nhau.

Các thành phần trong một Android Project

In any Android project, the AndroidManifest.xml file plays a crucial role by defining the application's screens, permissions, and themes Additionally, it contains essential information about the SDK version and specifies the main activity that will launch first.

File n y đ ợc tự động sinh ra khi tạo một Android project Trong file manifest bao giờ cũng có 3 th nh phần chính đó l : application permission v version

Thẻ < Application> bên trong thẻ này chứa các thuộc tính đ ợc định nghĩa cho ứng dụng Android nh :

 android:icon = ―drawable resource‖: Ở đ y đặt đ ờng dẫn đến file icon của ứng dụng khi c i đặt VD: android:icon = ―@drawable/icon‖

 android:name = ―string‖: thuộc tính n y để đặt tên cho ứng dụng Android Tên này sẽ đ ợc hiển thị lên m n hình sau khi c i đặt ứng dụng

 android:theme = ―drawable theme‖: thuộc tính n y để đặt theme cho ứng dụng Các theme l các cách để hiển thị giao di n ứng dụng

Ngoài ra còn nhiều thuộc tính khác…

Trong file manifest của ứng dụng, cần khai báo các thuộc tính chỉ định quyền truy cập và sử dụng tài nguyên Khi ứng dụng cần sử dụng một loại tài nguyên nào đó, các quyền truy cập tương ứng phải được chỉ định rõ ràng.

Thẻ xác định phiên bản SDK đ ợc khai báo nh sau: android:minSdkVersion="14"

File R.java được tạo tự động khi ứng dụng được khởi tạo, có nhiệm vụ quản lý các thuộc tính được khai báo trong file XML và các tài nguyên hình ảnh của ứng dụng.

File R.java được tự động tạo ra khi có bất kỳ sự kiện nào làm thay đổi thuộc tính trong ứng dụng Ví dụ, khi bạn kéo và thả một hình ảnh từ bên ngoài vào project, đường dẫn đến file đó sẽ được cập nhật ngay lập tức trong file R.java Ngược lại, nếu bạn xóa một hình ảnh, đường dẫn tương ứng cũng sẽ tự động bị xóa.

Chu kỳ ứng dụng Android

Hình 1.17 Chu kỳ ứng dụng Android

Một tiến trình Linux gói gọn một ứng dụng Android đã đ ợc tạo ra cho ứng dụng khi codes cần đ ợc Run và chạy:

Hệ thống cần giải phóng bộ nhớ mà nó chiếm giữ để phục vụ cho các ứng dụng khác Một đặc điểm nổi bật của Android là thời gian hoạt động của các tiến trình ứng dụng không được kiểm soát trực tiếp Android được xác định bởi hệ thống thông qua sự kết hợp của nhiều yếu tố.

 Những phần của ứng dụng mà h thống biết

 Những phần quan trọng nh thế n o đối với ng ời dùng

Bao nhiêu vùng nhớ chiếm lĩnh trong h thống

1.7.1 Chu kỳ sống thành phần

Các thành phần ứng dụng trải qua một chu kỳ sống, bắt đầu từ khi được tạo ra cho đến khi kết thúc Trong suốt chu kỳ này, các thành phần có thể hoạt động hoặc không, và trong trường hợp đang hoạt động, chúng có thể xuất hiện hoặc không xuất hiện.

Trong hệ thống quản lý các activity, các activity được tổ chức theo dạng stack Khi một activity mới được khởi tạo, nó sẽ được đặt ở đỉnh của stack và trở thành activity đang chạy Activity trước đó sẽ nằm dưới activity mới và sẽ không bị thay đổi trong suốt thời gian tồn tại của activity mới.

Nếu ng ời dùng nh n nút Back thì activity kết tiếp của stack sẽ di chuyển lên và trở thành active

1.7.3 Các trạng thái của chu kỳ

Một activity chủ yếu có 3 chu kỳ chính sau:

 Acive hoặc running: Khi Activity l đ ợc chạy trên màn hình Hoạt động này tập trung vào những thao tác của ng ời dùng trên ứng dụng

Khi một Activity bị tạm dừng, người dùng vẫn có thể nhìn thấy một Activity mới ở trên mà không che phủ màn hình Activity tạm dừng vẫn còn hoạt động, nhưng có thể bị hệ thống kết thúc nếu thiếu bộ nhớ.

Nếu một tài khoản bị dừng, điều đó có nghĩa là nó đã bị bao phủ hoàn toàn bởi các hoạt động khác Tài khoản vẫn giữ trạng thái và thông tin thành viên, nhưng người dùng không thể truy cập Thông thường, tài khoản này sẽ không bị loại bỏ, trừ khi hệ thống cần nhớ cho các trường hợp khác.

CHƯƠNG TRÌNH

Giới thi u về Socket

Thế giới hiện nay có nhiều ứng dụng chat như Hike, Whatsapp, Viber, và nhiều hơn nữa Bạn có thể ngạc nhiên khi biết rằng việc lập trình một ứng dụng không hề khó như bạn nghĩ Bài viết này sẽ cung cấp cái nhìn sâu sắc về quá trình phát triển ứng dụng, giúp các công ty nhỏ có thêm thông tin hữu ích.

Hôm nay, tôi sẽ khám phá cách xây dựng một ứng dụng trò chuyện nhóm đơn giản bằng cách sử dụng socket Phương pháp hiệu quả nhất là sử dụng thông báo đẩy thay vì chỉ dựa vào socket.

Bài viết này sẽ xây dựng ba thành phần chính Đầu tiên, máy chủ socket, đóng vai trò quan trọng trong việc xử lý các kết nối giữa client và socket Thứ hai là các ứng dụng web, cho phép người dùng tham gia vào các cuộc hội thoại chat từ trình duyệt Cuối cùng, ứng dụng Android, mang lại lợi ích cho việc trò chuyện giữa web và web, web và Android, cũng như giữa Android và Android.

Socket tiếng Anh là ổ cắm, nhưng trong lĩnh vực tin học, nó đề cập đến phương pháp giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hoặc trên một máy đơn Socket là một trong những phương thức giao tiếp giữa các quá trình (inter-process communication) như pipe, message queue, và được sử dụng rộng rãi trong các ứng dụng hiện nay như Web, FTP, và nhiều ứng dụng khác Bài viết này sẽ tập trung vào việc tìm hiểu socket trong môi trường Windows.

Socket là một công nghệ quan trọng trong việc thiết kế hệ thống trao đổi file, nơi tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để đảm bảo an toàn và dễ quản lý Hệ thống hoạt động bằng cách kết nối máy chủ với mạng (LAN, WAN hoặc internet), cho phép người dùng truy cập dữ liệu thông qua mạng Trong mô hình này, máy chủ chạy chương trình tiếp nhận các yêu cầu từ người dùng (client) và cung cấp dữ liệu cần thiết cho họ một cách hiệu quả.

Giao tiếp socket đơn giản hóa mô hình client/server, cho phép kết nối giữa hai ứng dụng trên mạng một cách dễ dàng Client mở một socket vô danh để tạo "cửa" kết nối, trong khi server tạo một socket có địa chỉ cụ thể Khi client tìm đến đúng server dựa trên thông tin socket, server sẽ mở cổng và quá trình truyền dữ liệu giữa client và server bắt đầu Địa chỉ IP và port đóng vai trò quan trọng, với IP là địa chỉ mạng của thiết bị như PC hay router.

Port là khái niệm trong mô hình OSI, nằm ở lớp Application, giúp phân biệt gói tin nào thuộc về quá trình nào Chẳng hạn, khi gói tin A đến lớp Application và được xác định là dành cho ứng dụng FTP, hệ điều hành sẽ chuyển tiếp nó đến ứng dụng web tương ứng Do đó, việc phân loại gói tin theo ứng dụng là rất quan trọng Port chính là thông tin cần thiết để xác định gói tin nào thuộc về ứng dụng nào Khi nói rằng Web server chạy ở port 80, có nghĩa là các gói tin được nhận sẽ được điều hành và chuyển đến port 80 để truyền cho Web server.

Tìm hiểu các thuộc tính của socket

Socket có 3 thuộc tính sau :

Domain của socket xác định môi trường giao tiếp của nó Nếu socket hoạt động trên internet, giá trị sẽ là AF_INET, cho phép xác định địa chỉ vật lý thông qua IP Ngược lại, nếu socket hoạt động trong mạng cục bộ, ta sử dụng giao thức AF_UNIX, nơi tên kết nối giữa các ứng dụng được xác định qua đường dẫn và hệ thống file Trong môi trường Linux, các thiết bị cũng được xem như hệ thống file, và socket cũng được coi là một phần của nó.

SOCK_STREAM tạo ra kết nối bền vững dựa trên giao thức TCP, đảm bảo rằng các gói tin được gửi đến đích một cách an toàn mà không bị mất mát Tuy nhiên, phương thức này có nhược điểm là tốc độ chậm và tiêu tốn nhiều tài nguyên.

SOCK_DGRAM là phương thức gửi và nhận dữ liệu một chiều thông qua giao thức UDP Trong mô hình này, client gửi dữ liệu mà không cần xác nhận việc server có nhận được hay không Tương tự, server cũng không cần phản hồi để xác nhận việc đã nhận dữ liệu từ client Mặc dù không đảm bảo an toàn, SOCK_DGRAM vẫn được ưa chuộng do tốc độ nhanh và tính hiệu quả trong nhiều ứng dụng mạng.

+Giao thức của socket (protocol ):

Giao thức là quy ước quan trọng trong việc gửi và nhận dữ liệu trong quá trình trao đổi thông tin, xác định ai gửi trước, ai nhận, và thứ tự gửi nhận Trong số nhiều giao thức dành cho các loại socket, TCP và UDP là hai giao thức được sử dụng phổ biến nhất.

2.2.2 Khái niệm về địa chỉ và cổng (Address, Port )

Khi cần trao đổi dữ li u cho nhau thì 2 ứng dụng cần phải biết thông tin tối thiểu là IP và sô hiểu cổng của ứng dụng kia

+ 2 ứng dụng có thể nằm cùng trên một máy

+ 2 ứng dụng cùng nằm trên một máy kh ng đ ợc cùng số hi u cổng

Máy ảo trên GENYMOTION

Phần mềm tạo máy ảo Android trên PC cho phép người dùng cài đặt và sử dụng ứng dụng từ Google Play một cách dễ dàng Nó cung cấp quyền truy cập vào các thành phần hệ thống như màn hình chính, cài đặt và thanh thông báo, mang lại trải nghiệm tương tự như trên thiết bị di động, hoàn toàn miễn phí.

Genymotion sử dụng VirtualBox để tạo máy ảo, giúp đơn giản hóa quá trình thiết lập Công cụ này chủ yếu được phát triển cho lập trình viên kiểm tra phần mềm trước khi phát hành trên Google Play, nhưng cũng rất hữu ích cho người dùng muốn chạy ứng dụng thông thường.

Bước đầu tiên là khởi động một máy chủ socket, cho phép các ứng dụng Android hoặc ứng dụng web kết nối Khi kết nối được thiết lập, máy chủ sẽ tạo ra một kết nối TCP giữa máy chủ và máy khách Máy chủ có khả năng xử lý nhiều kết nối đồng thời từ nhiều máy client khác nhau.

Khi một socket kết nối được thiết lập, các phương pháp như onOpen, onMessage và onExit sẽ được kích hoạt trên cả máy chủ và máy client Điều này cho phép gửi tin nhắn từ client đến máy chủ và ngược lại một cách dễ dàng.

Chuỗi JSON được sử dụng để trao đổi thông tin giữa máy chủ và máy client qua một phương thức truyền thông hiệu quả Mỗi chuỗi JSON bao gồm một nút gọi là "lá cờ", có vai trò xác định mục đích của thông tin chứa bên trong Ví dụ, khi một máy client tham gia cuộc trò chuyện, JSON sẽ bao gồm tên máy client, phiên ID và số lượng người trực tuyến.

"name": "Phan Viet duc", "onlineCount": 3

Hình 2.1 Ví dụ chuỗi JSON

Mỗi khi máy client nhận được một tin JSON, các JSON này sẽ được phân tích và thực hiện các hành động thích hợp Hy vọng những thông tin trên đã cung cấp đủ kiến thức cần thiết cho ứng dụng Bây giờ, hãy bắt đầu xây dựng một thành phần.

B ớc 4.1 Eclipse thêm J2EE & Tomcat Hỗ trợ 7

Các IDE Eclipse đi kèm với SDK Android nhưng không hỗ trợ J2EE và máy chủ Tomcat Để có thêm J2EE và Tomcat, người dùng cần tải xuống các tiện ích mở rộng Một lựa chọn khác là sử dụng một IDE hỗ trợ cả Android và J2EE, giúp tiết kiệm thời gian và công sức thay vì phải làm việc với hai IDE riêng biệt.

1 Tải về apache tomcat 7 từ website tomcat

2 Trong Eclipse đi để giúp => C i đặt phần mềm mới Nh n vào làm vi c với thả xuống và chọn Juno - http://download.eclipse.org/releases/juno (Bạn có thể cần phải chọn phiên bản eclipse thích hợp tùy thuộc vào eclipse của bạn)

3 Mở Web XML Java EE v OSGi Phát triển doanh nghi p v chọn d ới đ y phần mở rộng v tiến h nh c i đặt

> Eclipse Java EE Developer Tools

4 Một khi các phần mở rộng đ ợc c i đặt, Eclipse sẽ nhắc bạn khởi động lại Khi nhật thực lại mở ra, ta cần phải tạo ra một máy chủ đầu tiên Goto của Windows => Show View => Máy chủ Máy chủ

5 Trong tab máy chủ, nh p vào máy chủ mới và chọn Apache Tomcat v7.0

=> Server Cho biết tên máy chủ, trình duy t và chọn th mục tomcat nhà mà ta đã tải về tr ớc

B ớc 4.2 Tìm kiếm PC của bạn Địa chỉ IP

Để thử nghiệm ứng dụng trên nhiều thiết bị như điện thoại di động, máy tính hoặc laptop trong cùng một mạng Wi-Fi, bạn cần biết địa chỉ IP của máy tính nơi dự án máy chủ socket đang chạy Thay vì sử dụng localhost, hãy sử dụng địa chỉ IP trong URL Để tìm địa chỉ IP của máy tính, bạn có thể thực hiện các lệnh trong terminal.

Địa chỉ IP của máy có thể thay đổi khi bạn bị ngắt kết nối khỏi wifi hoặc khi có thiết bị mới kết nối vào mạng Do đó, hãy đảm bảo sử dụng địa chỉ IP chính xác khi thử nghiệm các ứng dụng Khi trình cài đặt Eclipse Tomcat đã sẵn sàng và bạn biết địa chỉ IP, việc phát triển máy chủ socket trở nên dễ dàng Xây dựng máy chủ socket chỉ cần không quá hai file class.

B ớc 4.3.Xây dựng Server Socket

1 Trong Eclipse tạo ra một dự án mới Web động bằng cách điều h ớng vào File New => khác Web => Dynamic Web Project Cho biết tên và chọn thời gian chạy Target nh Tomcat 7.Đặt tên WebMobileGroupChatServer

Một khi đ ợc tạo ra, nó chứa bên d ới c u trúc th mục

2 Nh p chuột phải src => New => Package và cung c p cho các tên gói đặt tên là info.androidhive.webmobilegroupchat

3 B y giờ tải google-collections-0.8.jar, javaee-api-7.0.jar, json-org.jar files and paste them in project’s WebContent => WEB-INF => lib folder

4 Tạo một lớp mới tên là JSONUtils.java theo th mục gói src của dự án

Lớp này chứa các ph ơng pháp để tạo ra chuỗi JSON những ng ời đ ợc yêu cầu phải có các giao tiếp b / w socket máy chủ và máy khách

Trong đoạn mã dưới đây, mỗi JSON chứa cờ nút liên quan đến các khách hàng mục tiêu Ở phía máy client, cần thực hiện hành động phù hợp để xem xét giá trị cờ.

Những lá cờ cơ bản có bốn giá trị, trong đó JSON chứa thông tin phiên làm việc của máy client cụ thể Đây là JSON đầu tiên mà máy client nhận được khi mở kết nối Socket.

New = JSON n y phát sóng đến t t cả các máy client thông báo về các máy client mới đ ợc kết nối đến socket server

Thông điệp này chứa các thông điệp được gửi từ máy client đến máy chủ, do đó nó sẽ được phát đến từng máy client Ngoài ra, exit là các thông điệp JSON thông báo cho mỗi khách hàng về những máy client đã bị ngắt kết nối từ máy chủ socket.

5 Tạo một lớp có tên SocketServer.java v thêm mã d ới đ y Đ y l nơi thực hi n các máy chủ socket thực tế

Lớp này chủ yếu có bốn ph ơng thức callback

OnOpen ( ) - Ph ơng pháp n y đ ợc gọi khi một máy client mới kết nối

Các b ớc tiến hành

1.Kết quả đạt đư c của đề tài

- Em đã áp dụng các kiến thức đã đ ợc học của nhiều môn học để giải quyết nhiều v n đề trong quá trình xây dựng phần mềm chat nội bộ

- Tìm hiển về h điều h nh di động android

2 Hạn chế của đề tài

- Thiết kế ch a đ ợc hoàn thi n

- Giao di n ch a đ ợc đẹp

- Ch a chuyển tải hình ảnh, video,

3 Hướng kh c phục và phát triển đề tài

- Tìm hiểu kỹ hơn về phần mềm chat ứng dụng

- Tìm hiểu nhiều giao di n hơn để thiết kế giao di n th n thi n hơn với ng ời dùng

- Tìm hiểu kỹ hơn để thiết kế nhiều chức năng hơn cho phần mềm chat

- Xây dựng nhiều chức năng

Ngày đăng: 01/08/2021, 11:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5]. Vũ Chí C ờng – Lập trình Java Đại học Vinh, 2012 Sách, tạp chí
Tiêu đề: Lập trình Java
[1]. Website: www.androidhive.info [2]. Website: vi.wikipedia.org Khác
[3]. Website: vnptyenbai.vn Khác
[4]. Website: kienthucandroid.blogspot.com Khác
[6]. Tim Lindholm, Frank Yellin, Gilad Bracha, Alex Buckley – The Java Virtual Machine Specification, Java SE 8 Edition Khác
[7]. Elliotte Rusty Harold –Processing XML with Java Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w