Nghiên cứu và Phát triển Ứng dụng trên Di động (Symbian & OpenGL ES)

Nghiên cứu & phát triển ứng dụng di động: Khám phá quy trình, công nghệ, xu hướng mới nhất. Phát triển ứng dụng mobile hiệu quả, tối ưu trải nghiệm người dùng.

Trường đại học

Đại Học Dân Lập Hải Phòng

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2009

74
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

MỤC LỤC

Mở đầu

1. CHƢƠNG 1: Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60

1.1. Giới thiệu hệ điều hành Symbian

1.2. Các mô hình thiết bị sử dụng hệ điều hành Symbian

1.3. Các tiến trình và tiểu tiến trình trong Symbian

1.3.1. Tiến trình

1.3.2. Tiểu trình

1.3.3. Tiến trình và tiểu trình nhân

1.4. Quản lí và điều phối tiến trình

2. CHƢƠNG 2: Kĩ thuật lập trình C++ trên Symbian

2.1. Các kiểu dữ liệu cơ bản

2.2. Cơ chế bắt lỗi cơ bản mà Symbian hỗ trợ gồm:

2.3. Hàm Cleanup stack

2.4. Hàm dựng 2 pha

3. CHƢƠNG 3: OPENGL ES

3.1. Giới thiệu về OpenGL ES

3.2. Nhập dữ liệu từ phím (Keyboard Input)

3.3. Phép chiếu trực giao (Orthographic Projection)

3.4. Màu sắc và đánh bóng (Color and Shading)

3.5. Phép biến đổi (Transformations)

3.6. Hình phối cảnh (Perspective )

3.7. Bộ lọc mặt sau (Backface Culling)

3.8. Định hướng ánh sáng (Directional Lighting)

3.9. Hàm chất liệu (Texture Functions)

3.10. Minh bạch đối tượng (Transparency)

3.11. Hiệu ứng sương mù (Fog)

4. CHƢƠNG 4: Áp dụng OpenGL ES để tạo ứng dụng đồ họa 3D

4.1. Phát biểu bài toán ứng dụng

4.2. Xây dựng đối tượng, bắt nút và di chuyển đối tượng

4.3. Một số hình ảnh trong Games

4.4. Cách tạo file sis để cài đặt lên thiết bị di động

Tài liệu tham khảo

Tóm tắt

I. Tổng quan phát triển ứng dụng di động Từ ý tưởng đến App Store

Phát triển ứng dụng di động là một quy trình phức tạp, bao gồm nhiều giai đoạn từ nghiên cứu thị trường, lên ý tưởng, thiết kế, lập trình, kiểm thử cho đến triển khai và bảo trì. Quá trình này không chỉ đòi hỏi kiến thức chuyên sâu về kỹ thuật mà còn cần sự nhạy bén về kinh doanh và thấu hiểu người dùng. Lĩnh vực này đã phát triển vượt bậc từ những ngày đầu của hệ điều hành Symbian, nơi các nhà phát triển phải đối mặt với nhiều hạn chế về phần cứng và công cụ. Một nghiên cứu điển hình về lập trình đồ họa trên Symbian cho thấy việc xây dựng ứng dụng, đặc biệt là game 3D, đòi hỏi sự am hiểu sâu sắc về quản lý bộ nhớ và các API cấp thấp như OpenGL ES. Ngày nay, với sự thống trị của iOS và Android, các công cụ và framework đã trở nên mạnh mẽ hơn, nhưng các nguyên tắc cốt lõi về tối ưu hiệu năng, quản lý tài nguyên và mang lại trải nghiệm người dùng xuất sắc vẫn không thay đổi. Bài viết này sẽ phân tích các nghiên cứu và kỹ thuật hiện đại trong việc phát triển ứng dụng di động, đối chiếu với các nền tảng ban đầu để rút ra những bài học kinh nghiệm quý báu.

1.1. Phân tích thị trường ngách và xác định đối thủ cạnh tranh

Bước đầu tiên trong mọi dự án phát triển ứng dụng di động thành công là tiến hành phân tích thị trường ngách một cách kỹ lưỡng. Việc xác định một phân khúc người dùng cụ thể với nhu cầu chưa được đáp ứng đầy đủ sẽ tạo ra lợi thế cạnh tranh bền vững. Quá trình này bao gồm việc nghiên cứu nhân khẩu học, hành vi và sở thích của người dùng tiềm năng. Sau khi xác định được thị trường mục tiêu, việc phân tích đối thủ cạnh tranh là cực kỳ quan trọng. Cần đánh giá các ứng dụng hiện có trên App Store và Google Play, xem xét điểm mạnh, điểm yếu, chiến lược kiếm tiền từ ứng dụng, và phản hồi của người dùng. Công cụ phân tích như App Annie hay Sensor Tower có thể cung cấp dữ liệu quý giá về lượt tải, doanh thu và xếp hạng của đối thủ. Từ đó, một chiến lược khác biệt hóa sản phẩm có thể được hình thành, tập trung vào việc cung cấp giá trị độc đáo mà các đối thủ chưa làm được.

1.2. Lựa chọn nền tảng Phát triển ứng dụng iOS và Android

Việc lựa chọn nền tảng phát triển là một quyết định chiến lược. Phát triển ứng dụng iOSphát triển ứng dụng Android là hai hướng đi chính, mỗi nền tảng có đặc thù riêng. iOS, với hệ sinh thái khép kín và người dùng có xu hướng chi tiêu nhiều hơn, thường là lựa chọn ưu tiên cho các ứng dụng có mô hình freemium hoặc trả phí. Ngôn ngữ lập trình chính là Swift, được hỗ trợ mạnh mẽ bởi Apple. Ngược lại, Android chiếm thị phần lớn hơn trên toàn cầu, mang lại khả năng tiếp cận người dùng rộng rãi hơn. Kotlin đã trở thành ngôn ngữ được Google khuyến nghị, mang lại sự an toàn và hiệu quả hơn so với Java. Quyết định lựa chọn nền tảng nào trước (hoặc cả hai) phụ thuộc vào đối tượng mục tiêu, ngân sách dự án và mục tiêu kinh doanh. Một số dự án có thể bắt đầu với một nền tảng để kiểm chứng ý tưởng trước khi mở rộng sang nền tảng còn lại.

II. Thách thức lớn trong lập trình ứng dụng di động chuyên nghiệp

Quá trình lập trình ứng dụng di động luôn tiềm ẩn nhiều thách thức kỹ thuật và phi kỹ thuật. Một trong những vấn đề lớn nhất là sự phân mảnh của thiết bị, đặc biệt là trên nền tảng Android, với hàng ngàn mẫu mã có kích thước màn hình, cấu hình phần cứng và phiên bản hệ điều hành khác nhau. Điều này đòi hỏi quá trình kiểm thử ứng dụng (QA) phải cực kỳ toàn diện để đảm bảo trải nghiệm nhất quán. Bên cạnh đó, bảo mật ứng dụng di động là một mối quan tâm hàng đầu. Ứng dụng cần được bảo vệ khỏi các mối đe dọa như mã độc, tấn công reverse-engineering, và rò rỉ dữ liệu người dùng. Các nghiên cứu sơ khai, chẳng hạn như tài liệu về Symbian, đã chỉ ra tầm quan trọng của việc quản lý tài nguyên hệ thống. Mặc dù công nghệ đã tiến bộ, việc tối ưu hiệu năng ứng dụng để tiết kiệm pin và bộ nhớ vẫn là một bài toán khó, ảnh hưởng trực tiếp đến sự hài lòng của người dùng và tỷ lệ giữ chân (retention rate).

2.1. Đối mặt với vấn đề bảo mật và quyền riêng tư dữ liệu

An toàn thông tin là yếu tố không thể xem nhẹ. Bảo mật ứng dụng di động bao gồm việc mã hóa dữ liệu truyền đi và lưu trữ, xác thực người dùng an toàn, và bảo vệ mã nguồn. Các API cho ứng dụng di động phải được thiết kế cẩn thận để chống lại các cuộc tấn công phổ biến như SQL Injection hay Man-in-the-Middle. Việc tuân thủ các quy định về quyền riêng tư như GDPR (Châu Âu) hay CCPA (California) là bắt buộc, đòi hỏi sự minh bạch trong việc thu thập và xử lý dữ liệu người dùng. Các nhà phát triển phải đảm bảo ứng dụng chỉ yêu cầu những quyền truy cập cần thiết và cung cấp cho người dùng khả năng kiểm soát dữ liệu của họ. Một lỗ hổng bảo mật không chỉ gây thiệt hại về tài chính mà còn phá hủy lòng tin của người dùng đối với thương hiệu.

2.2. Tối ưu hóa hiệu năng ứng dụng và quản lý tài nguyên

Một ứng dụng chậm, giật lag hoặc hao pin sẽ nhanh chóng bị người dùng gỡ cài đặt. Tối ưu hiệu năng ứng dụng là một quá trình liên tục. Điều này bao gồm việc giảm thời gian khởi động, tối ưu hóa các tác vụ chạy ngầm, và quản lý bộ nhớ hiệu quả. Các nghiên cứu từ thời Symbian đã nhấn mạnh cơ chế quản lý tiểu trình (thread) và đối tượng chủ động (active object) để xử lý các tác vụ đồng thời mà không làm ảnh hưởng đến bộ xử lý yếu. Ngày nay, các nguyên tắc này vẫn còn giá trị. Lập trình viên cần chú ý đến việc tránh rò rỉ bộ nhớ, sử dụng các cấu trúc dữ liệu hiệu quả, và tối ưu hóa việc kết nối mạng. Sử dụng các công cụ profiling như Xcode Instruments cho iOS hay Android Profiler để xác định các điểm nghẽn hiệu năng là một phần không thể thiếu trong quy trình phát triển phần mềm chuyên nghiệp.

III. Phương pháp lập trình đa nền tảng Tối ưu chi phí và thời gian

Trong bối cảnh cần tối ưu hóa nguồn lực, lập trình đa nền tảng (cross-platform) nổi lên như một giải pháp hiệu quả, cho phép các nhà phát triển sử dụng một bộ mã nguồn duy nhất để xây dựng ứng dụng cho cả iOS và Android. Cách tiếp cận này giúp giảm đáng kể thời gian và chi phí phát triển so với việc xây dựng hai ứng dụng native riêng biệt. Tuy nhiên, việc lựa chọn giải pháp đa nền tảng cũng cần cân nhắc kỹ lưỡng. Hiệu năng của ứng dụng có thể không bằng ứng dụng native, và việc truy cập vào các tính năng phần cứng đặc thù của từng hệ điều hành đôi khi gặp khó khăn. Các framework hiện đại như React Native và Flutter đã cải thiện đáng kể những nhược điểm này, cung cấp hiệu năng gần như native và một hệ sinh thái plugin phong phú để giải quyết các vấn đề phức tạp. Việc lựa chọn giữa native app vs hybrid app phụ thuộc vào yêu cầu cụ thể của dự án, mức độ phức tạp của UI/UX và yêu cầu về hiệu năng.

3.1. So sánh Native App vs Hybrid App và Progressive Web App PWA

Cuộc tranh luận giữa native app vs hybrid appProgressive Web App (PWA) luôn là chủ đề nóng. Native app được xây dựng bằng ngôn ngữ và công cụ chính thức của nền tảng (Swift/Kotlin), mang lại hiệu năng và trải nghiệm người dùng tốt nhất. Hybrid app, được xây dựng bằng công nghệ web (HTML, CSS, JavaScript) và đóng gói trong một vỏ native, có chi phí phát triển thấp hơn nhưng hiệu năng thường kém hơn. PWA là một trang web nhưng mang lại trải nghiệm giống ứng dụng, có thể cài đặt lên màn hình chính và hoạt động ngoại tuyến. PWA không cần thông qua các cửa hàng ứng dụng, nhưng bị giới hạn về khả năng truy cập phần cứng. Mỗi loại hình đều có ưu và nhược điểm riêng, phù hợp với các mục tiêu kinh doanh và kỹ thuật khác nhau.

3.2. Tìm hiểu framework phổ biến React Native và Flutter

Trong thế giới lập trình đa nền tảng, React NativeFlutter là hai cái tên nổi bật nhất. React Native, phát triển bởi Facebook, sử dụng JavaScript và React, cho phép các nhà phát triển web dễ dàng chuyển sang làm di động. Nó có một cộng đồng lớn và hệ sinh thái thư viện phong phú. Flutter, con cưng của Google, sử dụng ngôn ngữ Dart và có kiến trúc độc đáo, tự vẽ giao diện người dùng thay vì sử dụng các thành phần native. Điều này mang lại hiệu năng cao và sự nhất quán tuyệt đối về giao diện trên mọi nền tảng. Việc lựa chọn giữa React Native và Flutter thường phụ thuộc vào kinh nghiệm của đội ngũ phát triển, yêu cầu về thiết kế giao diện và mức độ ưu tiên về hiệu năng.

IV. Bí quyết thiết kế UI UX và tích hợp Backend cho ứng dụng mobile

Một ứng dụng thành công không chỉ mạnh về mặt kỹ thuật mà còn phải có giao diện hấp dẫn và trải nghiệm người dùng mượt mà. Thiết kế UI/UX cho mobile là nghệ thuật và khoa học về việc tạo ra các sản phẩm dễ sử dụng, hiệu quả và thú vị. Giao diện người dùng (UI) tập trung vào yếu tố thẩm mỹ và cảm quan, trong khi trải nghiệm người dùng (UX) đảm bảo luồng công việc logic và giải quyết được vấn đề của người dùng. Song song đó, hệ thống backend đóng vai trò là xương sống của ứng dụng, xử lý logic nghiệp vụ, quản lý dữ liệu và giao tiếp với các dịch vụ bên ngoài. Việc tích hợp API cho ứng dụng di động một cách hiệu quả là chìa khóa để đảm bảo dữ liệu được đồng bộ nhanh chóng và chính xác. Các giải pháp như Backend as a Service (BaaS) đang ngày càng trở nên phổ biến, giúp đơn giản hóa quá trình phát triển backend.

4.1. Nguyên tắc cốt lõi trong thiết kế UI UX cho ứng dụng di động

Một thiết kế UI/UX cho mobile hiệu quả phải tuân thủ các nguyên tắc cơ bản. Đầu tiên là sự đơn giản và rõ ràng: loại bỏ các yếu tố không cần thiết để người dùng tập trung vào tác vụ chính. Thứ hai là tính nhất quán: sử dụng các thành phần giao diện, màu sắc và biểu tượng đồng bộ trong toàn bộ ứng dụng. Thứ ba là phản hồi: ứng dụng phải cung cấp phản hồi ngay lập tức cho mọi hành động của người dùng, chẳng hạn như hiệu ứng khi nhấn nút. Cuối cùng là khả năng tiếp cận (accessibility): đảm bảo ứng dụng có thể sử dụng được bởi cả những người khuyết tật, ví dụ như hỗ trợ trình đọc màn hình hoặc độ tương phản màu sắc cao. Việc tuân thủ các hướng dẫn thiết kế của Apple (Human Interface Guidelines) và Google (Material Design) là một khởi đầu tốt để tạo ra trải nghiệm quen thuộc và trực quan.

4.2. Xây dựng API và sử dụng cơ sở dữ liệu di động hiệu quả

Backend và cơ sở dữ liệu di động là nền tảng cho mọi ứng dụng động. Việc thiết kế API cho ứng dụng di động theo chuẩn RESTful hoặc GraphQL giúp giao tiếp giữa client và server trở nên rõ ràng và hiệu quả. Về phía client, việc lựa chọn một cơ sở dữ liệu di động như SQLite, Realm, hoặc Core Data là cần thiết để lưu trữ dữ liệu cục bộ, cho phép ứng dụng hoạt động ngoại tuyến và tăng tốc độ truy cập. Các nền tảng Backend as a Service (BaaS) như Firebase của Google cung cấp một bộ công cụ hoàn chỉnh, bao gồm xác thực, cơ sở dữ liệu thời gian thực (Firestore), lưu trữ tệp, và thông báo đẩy (push notifications), giúp các nhà phát triển tập trung vào việc xây dựng giao diện và trải nghiệm người dùng thay vì lo lắng về hạ tầng server.

V. Hướng dẫn quy trình phát triển phần mềm và tối ưu App Store

Hoàn thành việc lập trình chỉ là một phần của hành trình. Một quy trình phát triển phần mềm hoàn chỉnh bao gồm các giai đoạn quan trọng khác như kiểm thử, triển khai và tối ưu hóa. Kiểm thử ứng dụng (QA) đảm bảo sản phẩm không có lỗi và hoạt động ổn định trên nhiều thiết bị. Sau khi ứng dụng đã sẵn sàng, việc đưa nó lên các cửa hàng ứng dụng đòi hỏi một chiến lược rõ ràng. App Store Optimization (ASO), hay SEO cho cửa hàng ứng dụng, là quá trình tối ưu hóa các yếu tố của trang ứng dụng (tên, mô tả, từ khóa, ảnh chụp màn hình) để tăng khả năng hiển thị và thu hút lượt tải về. Nghiên cứu về việc tạo file cài đặt .sis cho Symbian trước đây cho thấy tầm quan trọng của việc đóng gói và phân phối ứng dụng. Ngày nay, quy trình này đã được tự động hóa nhiều hơn thông qua các công cụ CI/CD (Continuous Integration/Continuous Deployment) nhưng bản chất vẫn là đảm bảo sản phẩm đến tay người dùng một cách hoàn hảo nhất.

5.1. Các giai đoạn trong kiểm thử ứng dụng QA di động

Quá trình kiểm thử ứng dụng (QA) bao gồm nhiều loại hình khác nhau. Unit testing kiểm tra từng thành phần nhỏ của mã nguồn. Integration testing đảm bảo các thành phần này hoạt động tốt khi kết hợp với nhau. UI testing tự động hóa các thao tác của người dùng trên giao diện để phát hiện lỗi. Performance testing đo lường tốc độ, mức độ tiêu thụ tài nguyên và khả năng chịu tải của ứng dụng. Security testing tìm kiếm các lỗ hổng bảo mật. Cuối cùng, User Acceptance Testing (UAT) cho phép người dùng thực tế sử dụng thử sản phẩm và đưa ra phản hồi. Một quy trình QA toàn diện giúp giảm thiểu rủi ro và nâng cao chất lượng sản phẩm trước khi ra mắt.

5.2. Tối ưu hóa App Store ASO để tăng trưởng người dùng

ASO là một yếu tố sống còn để ứng dụng của bạn được khám phá. App Store Optimization (ASO) bắt đầu bằng việc nghiên cứu từ khóa để tìm ra những cụm từ mà người dùng mục tiêu thường tìm kiếm. Các từ khóa này cần được tích hợp một cách tự nhiên vào tên ứng dụng, tiêu đề phụ và trường từ khóa (trên App Store). Mô tả ứng dụng phải hấp dẫn, nêu bật các tính năng và lợi ích chính. Hình ảnh chụp màn hình và video xem trước cần được thiết kế chuyên nghiệp để thu hút sự chú ý. Ngoài ra, xếp hạng và đánh giá của người dùng cũng ảnh hưởng lớn đến thuật toán xếp hạng của cửa hàng. Khuyến khích người dùng để lại đánh giá tích cực là một phần quan trọng của chiến lược ASO dài hạn.

21/09/2025
Nghiên cứu và phát triển các ứng dụng trên di động

Trích đoạn nội dung tài liệu

Mở đầu Hiện nay ngành công nghiệp phần mềm đang rất phát triển và ngành công nghiệp phần mềm trên điện thoại di động cũng không nằm ngoài xu thế đó. Tuy còn nhiều hạn chế trong phần cứng của điện thoại di động nhưng nó đã thể hiện được sức mạnh của mình trong rất nhiều các lĩnh vực khác nhau như giải trí, các tiện ích, thanh toán điện tử v.v… Ngành công nghệ phần mềm di động vẫn còn khá non trẻ ở Việt Nam vì vậy việc nghiên cứu và phát triển các ứng dụng trên di động là rất cần thiết. Em nhận thấy nhu cầu của con người trong lĩnh vực giải trí trên di động ngày càng cao. Chính vị vậy em thực hiên đề tài này nhằm hiểu rõ về các kĩ thuật lập trình trên thiết bị động, đặc biệt là các kĩ thuật xây dựng đồ họa 3D trên di động để có thể tạo nên một game 3D hoàn chỉnh 4 CHƢƠNG 1: Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60 1.1 Giới thiệu hệ điều hành Symbian Symbian là một công ty phần mềm chuyên phát triển và cung cấp một hệ điều hành tiên tiến, mở, chuẩn mực dùng cho thiết bị di động – hệ điều hành Symbian.

Công ty được thành lập vào tháng 6 nam 1998 đặt trụ sở tại Anh. Mục tiêu của công ty Symbian là phát triển hệ điều hành Symbian thành hệ điều hành chuẩn được sử dụng rãi cho các hệ thống kĩ thuật số di động trên toàn thế giới. Ðựơc sự hậu thuẫn củaa các nhà sản xuất điện thoại di động hàng đầu thế giới, công ty Symbian không ngừng phát triển: Các cổ đông của công ty Symbian Ban đầu công ty Psion xây dựng EPOC platform dùng để điều khiển các thiết bị nhỏ, đạt được một số kết quả nhất định sau đó, các công ty điện thoại di đông hàng đầu (Nokia, Siemens…) mua lại Psion, thành lập công ty Symbian và tiếp tục phát triển EPOC với tên gọi hệ điều hành Symbian. Ngày nay, hệ điều hành Symbian là hệ điều hành được sử dụng rãi trên các thiết bị di động.

Như cam kết cung cung cấp một chuẩn mở và hỗ trợ thiết bị người dùng di động mà Symbian trở thành sự lựa chọn hàng đầu trong ngành công nghiệp về thiết bị di động hiện nay. hệ điều hành Symbian là một chuẩn mở nên bất cứ nhà sản xuất nào cung có thể được cấp bản quyền sử dụng trên thiết bị của mình. 5 Các nhà sản xuất có giấy phép sử dụng hệ điều hành Symbian 1.2 Các mô hình thiết bị sử dụng hệ điều hành Symbian Hệ điều hành Symbian được thiết kế cho hai loại thiết bị di động chiến lược là Communicator và Smartphone. Communicator là các máy PDA với khả năng liên lạc vô tuyến của thiết bị di động.

Trong khi Smartphone là điện thoại di động với các tính nang PDA bổ sung. Với hai loại thiết bị này, Symbian công bố một số mô hình thiết kế tham khảo cho các nhà sản xuất. Hiện nay, tất cả các thiết bị di động thông minh trên thi trường đều có thể xác định dùng một trong ba mô hình sau: Mô hình Crystal: Mô hình Crystal định nghĩa một loại Communicator bỏ túi với hình dáng của một máy laptop. Crystal sử dụng màn hình màu theo chuẩn ½ VGA và môt bàn phím QWERTY, có thể hỗ trợ màn hình cảm ứng để nhập liệu với bút stylus.

Mô hình Quartz: Mô hình Quartz định nghĩa một loại Communicator với hình dáng của một máy Pocket PC. Quartz sử dụng màn hình màu theo chu?n ¼ VGA, là một thiết bị di động dùng bút stylus nhập liệu qua tuong tác với một màn hình cảm ứng Mô hình Pearl: Mô hình Pearl định nghia một loại Smartphone với hình dáng kích thước của một điện thọai di động thông thường. Pearl hỗ trợ màn hình màu với nhiều kích thước, tiêu chuẩn khác nhau, sử dụng bàn phím số của điện thoại để nhập liệu.3 Các tiến trình và tiểu tiến trình trong Symbian 1.1 Tiến trình Giống như các hệ điều hành khác, tiến trình (process) là đơn vị cơ sở cần bảo vệ trong symbian. Mỗi tiến trình có một khoảng không gian địa chỉ riêng.

Địa chỉ ảo của chương trình khi thực thi sẽ đc ánh xạ thành các địa chỉ vật lí trên ROM (với các chương trình thực hiện trực tiếp trên ROM) và trên RAM (chứa các ma chương trình, dữ liệu động và các thành phần khác cần cho hoạt động của chương trình) tạo không gian bộ nhớ cho tiến trình. Công việc ánh xạ này được thực hiện bởi đơn vị quản lí bộ nhớ (Memory Management Unit – MMU). Do địa chỉ mã chương trình trên ROM luôn cố định nên các chương trình trên ROM có thể dùng chung (2 ứng dụng sử dụng 1 DLL lưu trên ROM). Còn trên RAM, mỗi tiến trình có một vùng nhớ riêng, không được truy xuất lẫn nhau.2 Tiểu trình.

Tiểu trình (Thread) là đơn vị cơ sở thực thi chương trình trên symbian. Một tiến trình sẽ bao gồm nhiều tiểu trình và các tiểu trình này sử dụng cùng một vùng nhớ được cung cấp cho tiến trình đó. Thông thường trên symbian, một tiến trình có nhiều tiểu trình.3 Tiến trình và tiểu trình nhân Trong nhân, chỉ có duy nhất một tiến trình hoạt động: tiến trình nhân. Nó hoạt động ở chế độ dặc quyền.

có 2 hoạt động phục vụ cho nhân: tiểu trình phục vụ nhân (Kernel sever) và tiểu trình rỗng (null). Tiểu trình phục vụ nhân là tiểu trình có mức độ ưu tiên cao nhất trong hệ thống. Bất cứ khi nào có yêu cầu sử dụng các dịch vụ hệ thống trong nhân là tiểu trình này lại hoạt động ngay lập tức. Nược lại, tiến trình null là tiểu trình có độ ưu tiên thấp nhất trong hệ thống.

Tuy vậy nó lại đóng vai trò rất quan trọng trong hệ thống. khi điện thoại symbian khởi động, hệ điều hành bắt đầu hoạt động thì tiểu trình null là tiểu trình chạy đầu tiên với nhiệm vụ là nạp file sever. Khi hệ thống 7 đang hoạt động, tiểu trình null sẽ không bao giờ được gọi vì có độ ưu tiên thấp nhất. Nhưng khi hệ thống không còn phục vụ cho một ứng dụng nào nữa.

tiểu trinh null sẽ được thực hiện. Nhiệm vụ của nó lúc này là gọi phần quản lí năng lượng để đưa hệ thống vào trạng thái “ngủ” để giảm thiểu hao hụt năng lượng 1.4 Quản lí và điều phối tiến trình Việc điều phối và quản lý tiến trình, tiểu trình do nhân đảm trách. Bộ điều phối tiến trình hoạt động theo cơ chế độ ưu tiên với nguyên lý không độc quyền suer dụng thuật toán điều phối Round Rubin: trong một chu kì, tiểu trình có độ ưu tiên cao nhất sẽ được chạy trước tiên, các tiểu trình khác ở trạng thái tạm hoãn (suspend). Nhân hệ thống kiểm tra độ ưu tiên của các tiểu trình tại đầu chu kỳ và sẽ phục hồi hoạt động (resume) cho tiểu trình này nếu tiểu trình này có độ ưu tiên lớn hơn tiểu trình đang hoạt động.

Thông thường để xây dựng cơ chế quản lý sự kiện cho các tiến trình, các hệ điều hành sử dụng cơ chế đa tiểu trình (multi thread): ví dụ một tác vụ được tính toán lâu phức tạp được xử lí bởi một tiểu trình trong khi một tiểu trình khác tiếp tục được chờ xử lý các sự kiện nhập của người dùng. Cơ chế này symbian có hỗ trợ nhưng hiếm khi được dùng do bộ xử lí không mạnh mẽ như trên máy vi tính và sử dụng nhiều tiểu trình cũng không phù hợp với mô hình sử dụng sever trên symbian. Do đó symbian đã sử dụng một cơ chế tối ưu hơn cho hoạt động của ứng dụng và các sever: đó là mọi vấn đề quản lý sự kiện và xủ lý tác vụ đồng thời đều được thực hiện nhờ một đối tượng đặc biệt trong symbian, active object. Mỗi một tiểu trình trên hệ điều hành symbian có một bộ điều phối active scheduler đảm trách việc quản lý sự kiện thông qua việc quản lý điều phối một hoặc nhiều active object.

8 CHƢƠNG 2: Kĩ thuật lập trình C++ trên Symbian 2.1 Các kiểu dữ liệu cơ bản Môi trường lập trình trên Symbian cung cấp các kiểu dữ liệu cơ bản tương đương với các kiểu xây dựng sẵn của C++. Ðó là các lớp dữ liệu cơ bản mà khi sử dụng không cần cấp phát hay hủy 1 cách tường minh; các lớp này bắt đầu bằng kí tự T. Lưu ý, khi lập trình trên Symbian không nên dùng các kiểu dữ liệu xây dựng sẵn của C++ mà hãy dùng các (lớp) kiểu co bản mà Symbian cung cấp. Lý do đơn giản vì thiết bị thực (chạy hệ điều hành Symbian) có thể không làm việc tốt với các kiểu dữ liệu xây dựng sẵn của C++.

kiểu số nguyên: Kiểu dữ Kiểu dữ Kiểu dữ liệu C++ tương liệu Mô tả liệu có dấu đương không dấu signed char & Số nguyên 8 bit có dấu TInt8 TUint8 unsigned char và không dấu short int & unsigned Số nguyên 16 bit có TInt16 TUint16 short int dấu và không dấu long int & unsigned long Số nguyên 32 bit có TInt32 TInt32 int dấu và không dấu TInt64 Số nguyên 64 bit Số nguyên ít nhất 32 bit TInt TInt int & unsigned int có dấu và không dấu 9 Kiểu số thực: Kiểu dữ liệu Kiểu dữ liệu C++ tương Mô tả đương TReal32 float Số thực 32 bít TReal64 double Số thực 64 bít TReal Tương đương với TReal64 Lưu ý: Hầu hết các HÐH Symbian hiện nay không hỗ trợ phần cứng xử lý số chấm động. Vì vậy các phép toán trên số thực sẽ chậm hon rất nhiều lần so với số nguyên. Vì vậy bạn nên hạn chế tôí đa việc sử dụng số thực. Các kiểu cơ bản khác: Kiểu dữ liệu C++ Kiểu dữ liệu Mô tả tương đương 32-bit unsigned Kiểu ký tự của Symbian, dài 32 bit, TChar integer cung cấp nhiều hàm xử lý trên ký tự TText8 char Kiểu ký tự 1 byte TText16 wchar_t Kiểu ký tự Unicode (2 bytes) Ttext wchar_t Kiểu ký tự Unicode (2 bytes) Kiểu logic, nhận 2 giá trị ETrue/ Tbool int EFalse TAny void 2.1 Cơ chế bắt lỗi cơ bản mà Symbian hỗ trợ gồm: - Hàm User::Leave() có tác dụng ngừng hàm đang thực hiện và trả về mã lỗi.

- Macro TRAP và biến thể của nó TRAPD, cho phép đoạn mã chương trình hoạt động dưới dạng bẫy lỗi 10 Cơ chế này hoạt động như thao tác bẫy lỗi khá quen thuộc try/catch và thrown Tất cả các hàm có thể phát sinh lỗi tài nguyên trong ứng dụng (nhu cấp phát vùng nhớ cho một đối tượng nhưng đã hết bộ nhớ, truyền dữ liệu trong khi dịch vụ chưa sẵn sàng…) gọi là “Leave function”, và có ký tự L cuối tên hàm (hàm L).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ