Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
3,6 MB
Nội dung
LỜI CẢM ƠN Vậy gần năm trơi qua, mái trường Đại học Dân lập Hải Phịng thân thương cho em thật nhiều kỷ niệm sâu sắc mà em quên Ngày ngày đến lớp, chúng em không sống môi trường học tập chuyên nghiệp, thu kiến thức bổ ích làm hành trang đường đời sau mà cịn sống tình cảm quan tâm, trìu mến thầy, cô Đối với sinh viên năm cuối chúng em, làm đồ án tốt nghiệp niềm vui, niềm hạnh phúc vô lớn lao đầy tự hào Để đồ án hồn thành có kết tốt ngày hôm em xin gửi lời tri ân lời cảm ơn sâu sắc tới: Thầy hiệu trưởng Trần Hữu Nghị Ban giám hiệu nhà trường thầy cô giáo môn Công nghệ thông tin tận tình bảo, dạy dỗ, truyền đạt kiến thức cho chúng em nên người Và em xin dành lời cảm ơn đặc biệt từ tận đáy lòng đến thầy giáo, Th.s Trần Ngọc Thái Trong suốt thời gian qua thầy giúp đỡ em nhiều, không nhận hướng dẫn thầy có lẽ đồ án tốt nghiệp em khơng hồn thành thuận lợi ngày hơm Bên cạnh đó, em vơ biết ơn gia đình động viên, ủng hộ em em lựa chọn mái trường Dân Lập Hải Phòng ngơi nhà thứ hai Do kiến thức thân nhiều hạn chế nên đồ án em cịn nhiều sai sót, em mong nhận góp ý thầy, để đồ án em hoàn thiện Em xin chân thành cảm ơn ! Hải Phòng, tháng 07 năm 2019 Sinh viên MỤC LỤC DANH MỤC CÁC HÌNH MỞ ĐẦU CHƯƠNG 1: KIẾN TRÚC HỆ ĐIỀU HÀNH iOS 1.1.Định nghĩa iOS : 1.2.Tổng quan kiến trúc iOS: 1.2.1 Các tiến trình (Processes): 1.2.2.Nhân (Kernel): 1.2.3.Bộ đệm gói (Packet buffer): 1.2.4.Trình điều khiển thiết bị (Device driver): 1.2.5.Phần mềm chuyển mạch nhanh (Fast switching soft): 1.3.Tổ chức nhớ: 1.3.1.Miền nhớ (Memory region) : 1.3.1.Miền nhớ (Memory region) : 1.3.2.Vùng nhớ (Memory pool): 1.4.Tiến trình iOS (Processes iOS): 10 1.4.1.Vòng đời tiến trình: 10 1.4.1.1.Trạng thái khởi tạo (Create): 11 1.4.1.2.Trạng thái điều chỉnh (Modify): 11 1.4.1.3.Trạng thái thức thi (Execute): 11 1.4.1.4.Trạng thái kết thúc (Terminal): 12 1.4.2.Độ ưu tiên tiến trình iOS: 12 1.5.Kernel iOS: 13 1.5.1.Lập lịch: 13 1.5.2.Quản lý nhớ: 13 1.5.2.1.Bộ quản lý Region: 14 1.5.2.2.Bộ quản lý pool: 14 1.5.2.2.Quản lý Chunk: 15 1.5.3.Quản lý đệm gói: 15 1.6.Trình điều khiển thiết bị: 16 1.7.Kiến trúc hệ điều hành iPhone : 18 1.7.1.Lớp Core OS : 18 1.7.2.Lớp Core Services : 19 1.7.3.Lớp Media(Truyền thông) : 19 1.7.4.Lớp Cocoa Touch : 20 CHƯƠNG 2: PHÁT TRIỂN ỨNG DỤNG THI HÀNH TRÊN iOS .21 2.1.Lập trình Xcode : 21 2.1.1.Xcode IDE (Mơi trường phát triển tích hợp) : 22 2.1.1.1.Single Window(Cửa sổ đơn) : 23 2.1.1.2.Navigators : 24 2.1.1.3.Jump Bar : 24 2.1.2.Interface Builder(Giao diện chương trình): 24 2.1.3.Apple LLVM(Trình biên dịch) : 25 2.2 Iphone Simulator(Mô Iphone) : 25 3.Instument : 27 2.4 iOS Framework : 27 2.5.Một số ứng dụng đơn giản : 31 2.5.1.Chương trình Hello World : 31 2.5.2.Đóng gói chương trình: 35 CHƯƠNG 3: PHÁT TRIỂN ỨNG DỤNG WIKIPEDIA TRÊN iPHONE 36 3.1 Nhu cầu duyệt web tra cứu thông tin thiết bị di động : 36 3.2.Mạng Wipipedia : 37 3.3.Phát triển ứng dụng truy cập Wikipedia Iphone : 37 3.3.1.Mô tả ứng dụng : 37 3.3.2.Chức ứng dụng : 38 3.3.Môi trường làm việc : 43 3.4.Giao diện chương trình : 44 KẾT LUẬN 45 DANH MỤC CÁC HÌNH Hình : Kiến trúc hệ điều hành iOS Hình : Các loại region Hình : Region Subregions Hình : Các trạng thái tiến trình iOS Hình : Sự phân mảnh nhớ Hình : Kiến trúc hệ điều hành iPhone Hình : Các hàm thư viện iOS Hình : Biểu đồ lượng người dùng truy cập Internet điện thoại di động MỞ ĐẦU Dưới phát triển vượt bậc Công nghệ thông tin, thời đại Internet bùng nổ điện thoại di động không đơn giản phương tiện liên lạc mà cịn cơng cụ hữu ích cho người Ngồi chức nghe, gọi, nhắn tin thông thường, ngày điện thoại di động cịn có nhiều ứng dụng khác : quay phim, chụp ảnh, nghe nhạc, chơi game, gửi mail, tìm kiếm thơng tin… Wikipedia bách khoa tồn thư nội dung mở nhiều ngơn ngữ Internet.Wikipedia viết xây dựng nhiều người dùng cộng tác với nhau.Việc xây dựng ứng dụng truy cập Wikipedia iPhone ứng dụng hữu ích Cùng với phát triển khoa học công nghệ, đơn giản với điện thoại di động mạng Internet, người dùng tìm kiếm thơng tin mà khơng cần đến máy tính CHƯƠNG KIẾN TRÚC HỆ ĐIỀU HÀNH iOS 1.1.Định nghĩa iOS : iOS viết tắt từ Internetwork Operating System, hệ điều hành hoạt động phần cứng router Cisco, điều khiển hoạt động định tuyến chuyển mạch router.Trên hệ điều hành iOS gồm có phần : aaaabbbb-cccc : - aaaa : dòng sản phẩm áp dụng hệ điều hành - bbbb : tính iOS - cc : định dạng file iOS, nơi iOS chạy, kiểu nén iOS Ví dụ : tên iOS : C3620-i-mz_113-8T.bin iOS hệ điều hành thiết bị di động Apple.Ban đầu hệ điều hành phát triển để chạy iPhone, sau mở rộng để chạy thiết bị Apple iPod touch, iPad Apple TV Giao diện người dùng iOS dựa sở thao tác tay hình cảm ứng thiết bị Apple 1.2.Tổng quan kiến trúc iOS: Khi mà lợi ích việc định tuyến qua mạng trở nên phát triển, đòi hỏi router phải hỗ trợ số giao thức cung cấp chức khác, cầu nối mạng Cisco thêm tính cho phần mềm router.Kết có nhiều chức cầu nối định tuyến ngày Nhưng cấu trúc hệ điều hành giống ban đầu.iOS cấu trúc đơn giản, nhỏ, thiết kế dựa vào ràng buộc nhớ, tốc độ, phần cứng router Hình 1: Kiến trúc hệ điều hành iOS Các thành phần hệ điều hành iOS : 1.2.1 Các tiến trình (Processes): Là tuyến riêng lẻ kết hợp với liệu để thực tác vụ, trì hệ thống, chuyển mạch gói liệu, thực giao thức định tuyến… 1.2.2.Nhân (Kernel): Cung cấp dịch vụ hệ thống tùy thuộc vào iOS : quản lý nhớ, lập lịch tiến trình…Nó cung cấp quản lý tài nguyên phần cứng (CPU, nhớ) cho tiến trình 1.2.3.Bộ đệm gói (Packet buffer): Cung cấp đệm toàn cục kết hợp với chức quản lý đệm để lưu trữ gói liệu chuyển mạch 1.2.4.Trình điều khiển thiết bị (Device driver): Làm chức điều khiển giao tiếp phần cứng thiết bị ngoại vi, giao tiếp tiến trình iOS, kernel phần cứng.Chúng giao tiếp với phần mềm chuyển mạch nhanh (fast switching software) 1.2.5.Phần mềm chuyển mạch nhanh (Fast switching soft): Chức chuyển mạch gói liệu cao 1.3.Tổ chức nhớ: iOS ánh xạ toàn bộ nhớ vật lý thành không gian địa ảo rộng lớn MMU (Memory Map Unit) CPU có giá trị sử dụng để tạo không gian địa ảo chí mà iOS khơng tận dụng khối nhớ ảo trọn vẹn 1.3.1.Miền nhớ (Memory region) : iOS chia không gian địa thành miền nhớ gọi region, region phù hợp với loại nhớ vật lý khác Ví dụ : SRAM lưu trữ gói liệu DRAM lưu trữ phần mềm liệu Phân lớp nhớ thành region cho phép iOS phân loại nhớ khác mà phần mềm không cần biết chi tiết nhớ platform Các region phân chia thành tám mục hình : Memory region Local(cục bộ) Đặc điểm Thông thường lưu trữ cấu trúc liệu lúc chạy local heap, thường DRAM Lomem Bộ nhớ chia sẻ CPU điều khiển môi trường mạng sử dụng thông qua bus liệu, thường SRAM Fast Bộ nhớ truy xuất nhanh, SRAM, sử dụng cho mục đích đặc biệt tác vụ xem yêu cầu tốc độ Itext Thực thi mã nguồn iOS Idata Các biên khởi tạo IBss Các biên không khởi tạo PCI Bộ nhớ bus CPI, sử dụng tất thiết bị bus PCI Flash Bộ nhớ flash dùng để lưu trữ iOS chạy từ RAM iOS chạy từ flash, lưu trữ bảng file(tập tin) cấu hình dự phịng liệu khác.Thơng thường file hệ thống xây dựng miền nhớ flash Hình 2: Các loại Region 1.3.2.Vùng nhớ (Memory pool): iOS quản lý nhớ rỗi thông qua chuỗi memory pool.Mỗi pool tập hợp khối nhớ mà cấp phát thu hồi cần.Memory pool xây dựng bên region quản lý kernel.Thường pool tương đương với region đặc biệt Hình : Region Subregions Một memory pool xây dựng từ vài region mở rộng, cho phép nhớ cấp phát thu hồi từ miền nhớ khác để tối đa hiệu hoạt động, dùng lệnh show memory để hiển thị pool này: router#show memory Head Total(b) Used(b) Free(b) Lowest(b) Largest(b) Processor 61281540 7858880 3314128 4544752 4377808 4485428 I/O1A00000 6291456 1326936 4964520 4951276 4964476 PCI 4B000000 1048576 407320 641256 6412556 641212 … Mơ tả sau(kích thước tính theo byte): - Total: kích thước pool - Used: lượng nhớ cấp phát - Free: lượng nhớ sẵn sằng để sử dụng - Lowest: lượng nhớ thấp sẵn sàng sử dụng từ mà pool tạo - Largest: kích thước khối nhớ liên tục lớn sẵn sàng sử dụng Lệnh show memory cung cấp ba pool với tham số tương ứng: heap, processor I/O Hình : Biểu đồ lượng người dùng truy cập Internet điện thoại di động 3.2.Mạng Wipipedia : Wikipedia bách khoa toàn thư nội dung mở nhiều ngôn ngữ Internet.Wikipedia viết xây dựng nhiều người dùng cộng tác với Hiện Wikipedia trực thuộc Quỹ hỗ trợ Wikimedia, tổ chức phi lợi nhuận Wikipedia có 15 triệu viết, với 3,3 triệu phiên tiếng Anh (English Wikipedia).Wikipedia có 200 phiên ngơn ngữ, vào khoảng 100 hoạt động.15 phiên có 50.000 viết : tiếng Anh, Đức, Pháp, Ba Lan, Nhật, Ý, Thụy Điển, Hà Lan, Bồ Đào Nha, Tây Ban Nha, Nga, Na Uy, Phần Lan tiếng Việt Wikipedia tài liệu tham khảo mang tính bách khoa, khơng phải cẩm nang hướng dẫn sử dụng, sách du lịch, sách giáo khoa 3.3.Phát triển ứng dụng truy cập Wikipedia Iphone : 3.3.1.Mô tả ứng dụng : Ứng dụng Wikipedia Iphone cho phép truy cập viết Wikipedia với giao diện đơn giản, gọn gàng với tìm kiếm nằm cùng, bên viết bật hiển thị ngẫu nhiễn 37 3.3.2.Chức ứng dụng : Wikipedia Iphone với tính : Searching, Add Bookmark, History, Map, Next, Preview, Select Language Truy cập Wikipedia IPhone Searching Next Add Bookmark Preview History Map Select Language Hình : Các chức ứng dụng - Searching : chức tìm kiếm thơng tin Chức cho phép tìm kiếm thơng tin Wikipedia + Sử dụng lớp thư viện : Foundation.h + Code : - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { searchText = [searchText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString *urlString = [NSString stringWithFormat:@"http://%@.wikipedia.org/w/api.php? action=opensearch&search =%@&format=json", [appDelegate.settings stringForKey:@"languageKey"], searchText]; NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 38 NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; [connection release]; [request release]; if ([searchText length] > 0) { tableView.alpha = 1.0; tableView.hidden = NO; } else { tableView.alpha = 0.0; tableView.hidden = YES; } [tableView setContentOffset:CGPointMake(0, 0) animated:YES]; } - (void)connection:(NSURLConnection *)connection didReceiveResponse: (NSURLResponse *)response { } - (void)connection:(NSURLConnection *)connection didReceiveData: (NSData *)data { NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSArray *results = [jsonString JSONValue]; if (results && [results count] >= 1) { searchResults = [NSMutableArray arrayWithArray:[results objectAtIndex:1]]; } else { searchResults = [NSMutableArray array]; } 39 [searchResults retain]; [jsonString release]; [tableView reloadData]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { } - (void)connection:(NSURLConnection *)connection didFailWithError: (NSError *)error { tableView.hidden = YES; } Khi tìm kiếm thơng tin lựa chọn ngơn ngữ tìm kiếm, quay trở lại thơng tin tìm kiếm trước xem tiếp thơng tin hiển thị phía sau + Next : Chức xem trước - (IBAction)goBack { [webView goBack]; } + Preview : Chức xem sau - (IBAction)goForward { [webView goForward]; } - Select Language : Chức lựa chọn ngôn ngữ + Sử dụng lớp thư viện : LanguageSwitcher.h + Code : - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section { 40 return [languagesArray count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; NSMutableDictionary *dictItem = [languagesArray objectAtIndex:indexPath.row]; cell.textLabel.text = [dictItem valueForKey:@"language"]; if ([[dictItem valueForKey:@"path"] isEqualToString: [settings stringForKey:@"languageKey"]]) { cell.accessoryType = UITableViewCellAccessoryCheckmark; } else { cell.accessoryType = UITableViewCellAccessoryNone; } return [cell autorelease]; } - (void)tableView:(UITableView *)mTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { for (int i=0; i