Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
1,51 MB
Nội dung
Bộ giáo dục đào tạo Tr-ờng đại học dân lập hải phòng -o0o - NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HNH iOS đồ án tốt nghiệp đại học hệ quy Ngành công nghệ thông tin Giáo viên h-ớng dẫn: Ths Trần Ngọc Thái Sinh viên Lớp : Hoàng Kim Ngọc : CTL401 Hải Phòng, 7/2012 LI CM N Vy 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à sống tình cảm quan tâm, trìu mến thầy, Đố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 cịn nhiều hạn chế nên đồ án em nhiều sai sót, em mong nhận góp ý thầy, cô để đồ án em hoàn thiện Em xin chân thành cảm ơn ! Hải Phòng, tháng 07 năm 2012 Sinh viên Hoàng Kim Ngọc 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 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 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 ngun 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 : Đặc điểm Memory region Local(cục bộ) 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 *Thiết kế giao diện : Chọn tập HelloWorldViewController.xib để chỉnh sửa cách sử dụng giao diện Builder Trong khu vực Utilities bên phải, phần Thư viện đối tượng di chuyển xuống để xem Label kéo thả Label, Text field, Round Rect Button vào cửa sổ View 32 *Code : Trong tập tin HelloWorldViewController.h, thêm khai báo hành động btnClicked: #import @interface HelloWorldViewController : UIViewController -(IBAction) btnClicked:(id) sender; @end 33 Quay lại tập tin HelloWorldViewController.xib click chuột phải kéo thả btnClicked vào File’s Owner Trong tập tin HelloWorldViewController.m thêm lệnh : #import “HelloWorldViewController.h” @implementation HelloWorldViewController -(IBAction) btnClicked:(id) sender { // -display an alert view UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Hello World!” message:@”iPhone, here I come!” delegate:self cancelButtonTitle:@”OK” otherButtonTitles:nil]; [alert show]; [alert release]; } 34 Ấn tổ hợp phím Ctrl+R chạy chương trình 2.5.2.Đóng gói chƣơng trình: +Bước 1: Vào Menu chọn Window -> Organizer -> Devices Section -> Provisionig Profiles ->Under Library group -> Chọn Automatic Device Provisioning +Bước 2: Chọn Refresh -> nhập Apple ID +Bước 3: Click vào tên Project -> chọn Project and Produce Setting -> Approriate profile > chọn iPhone Distribution -> iPhone 5.0 Simulator +Bước 4: Vào Product -> Archive -> Next ->Next -> đổi tên file thành ipa 35 CHƢƠNG PHÁT TRIỂN ỨNG DỤNG WIKIPEDIA TRÊN iPHONE 3.1 Nhu cầu duyệt web tra cứu thông tin thiết bị di động : Trong vòng 10 năm trở lại đây, tỷ lệ sử dụng Internet Việt Nam có tốc độ tăng trưởng nhanh khu vực.Việt Nam lọt vào top 20 nước sử dụng Internet nhiều giới (theo báo cáo “Hiện trạng Internet toàn cầu” Pingdom – hãng chuyên cung cấp dịch vụ giám sát hoạt động website, máy chủ cho tổ chức, doanh nghiệp) Đặc biệt Việt Nam quốc gia có tốc độ phát triển Internet di động nhanh thứ khu vực Đông Nam Á (chiếm 60%), đứng sau Malaysia Dựa số thức, 31% dân số Việt Nam có truy cập Internet năm có thêm 2-3 triệu người truy cập Internet Internet truy cập thường xuyên Hầu hết tất người sử dụng Internet truy cập Internet hàng ngày nhiều lần tuần.Một nghiên cứu với 5.800 người 12 thành phố lớn, kết so với năm 2010 năm 2011 số người dùng thiết bị truy cập vào Internet thay đổi.Cụ thể, người dùng sử dụng máy tính để bàn truy cập vào Internet giảm từ 84% năm 2010 xuống 81% năm 2011.Trong đó, tỷ lệ người dùng laptop truy cập Internet tăng từ 38% lên 47%, đặc biệt số người sử dụng điện thoại di động truy cập vào Internet tăng gấp đôi – từ 27% năm 2010 lên 56% năm 2011 Thống kê từ StatCounter cho thấy lượng người dùng truy cập vào Internet từ điện thoại di động tăng với tốc độ ổn định sau năm Trong tổng số điện thoại truy cập Internet năm vừa qua người dùng Mỹ Anh truy cập vào Internet từ Iphone nhiều 36 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