MỤC LỤC
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
DANH MỤC BẢNG BIỂU
Hình 2.1:Điện thoại di động sử dụng hệ điều hành Android
Hình 2.2:Điện thoại di động G1
Hình 2.3:Điện thoại di động G1
Hình 2.4: Kiến trúc Eclipse
Hình 3.1: Biểu đồ luồng chương trình
Hình 3.2: Biểu đồ chức năng
Hình 3.3: Sơ đồ liên kết các màn hình
Hình 3.4: Màn hình chính của G1
Hình 3.5: Màn hình đầy đủ chức năng
Hình 3.6: Màn hình Login
Hình 3.7: Màn hình Login(đăng nhập sai)
Hình 3.8: Biểu đồ mô tả thuật toán chức năng đăng nhập
Hình 3.9: Màn hình Main
Hình 3.10: Biểu đồ mô tả thuật toán vào thư viện ảnh
Hình 3.11: Màn hình PhotoLibrary
Hình 3.12:Biểu đồ mô tả thuật toán lựa chọn ảnh
Hình 3.13:Màn hình ReadyToUpload
Hình 3.14:Biểu đồ mô tả thuật toán xác nhận ảnh đã chọn
Hình 3.15:Màn hình ChoosePhotoshow
Hình 3.16:Biểu đồ mô tả thuật toán chọn album
Hình 3.17:Màn hình khi đang upload ảnh
Hình 3.18:Màn hình upload ảnh thành công
Hình 3.19:Màn hình upload ảnh bị lỗi
Hình 3.20:Biểu đồ mô tả thuật toán tải ảnh
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
2
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
NHỮNG ĐỊNH NGHĨA, VIẾT TẮT
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
4
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
CHƯƠNG 1: MỞ ĐẦU
1.1 GIỚI THIỆU VỀ CƠ SỞ THỰC TẬP
Giới thiệu chung về FPT: Công ty cổ phần FPT(FPT Corporation) là
công ty đa quốc gia, hiện đang hoạt động trên bốn lĩnh vực: Công nghệ thông
tin và viễn thông; Tài chính và ngân hàng; Bất động sản; Giáo dục và đào tạo
Về kinh doanh: Tập đoàn FPT trong năm 2008 đã đạt kết quả kinh
doanh rất khả quan, với sự tăng trưởng của hầu hết các chỉ số tài chính.
Doanh thu thuần năm 2008 đạt trên 16.806 tỷ đồng tương đương với trên 1 tỷ
USD, tăng trưởng 21% so với năm 2007 và vượt 12, tương đương với trên 1
tỷ USD, tăng trưởng 21% so với năm 2007 và vượt 12,4 kế hoạch năm đã đề
ra.
Lãi trước thuế trên 1.249 tỷ đồng, vượt 5.6% so với kế hoạch năm
và tăng 21.4% so với cùng kỳ năm 2007. Lãi sau thuế cổ đông công ty mẹ đạt
gần 830 tỷ đồng, so với năm 2007 đã đăng 13,7%. Lãi cơ bản trên cổ phiếu
bình quân là 5.976 đồng trên một cổ phiếu, tăng 12,4% so với cùng kỳ năm
2007.
FPT cũng không ngừng tập trung phát triển các hoạt động kinh
doanh chia theo từng lĩnh vực, trong đó các mảng kinh doanh truyền thống
luôn được chú trọng đầu tư và đạt được các kết quả tích cực. Đó là: Tích hợp
hệ thống, Xuất khẩu phần mềm, Viễn thông, Đào tạo và Phân phối sản phẩm
công nghệ viễn thông.
Về doanh số, các mảng kinh doanh này đạt được tốc độ tăng trưởng
lần lượt là 49, 7%; 43,9%; 44,8%; 97,6% và 10%. Các lĩnh vực này cũng đã
hoàn thành kế hoạch đề ra về lợi nhuận trong năm 2008 lần lượt là 135%;
99,3%; 102,3%; 129,1% và 124,7%.
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
5
Các lĩnh vực hoạt động chính của FPT:
_Tích hợp hệ thống
_Giải pháp phần mềm
_Xuất khẩu phần mềm
_Dịch vụ ERP
_Tích hợp hệ thống
_Phân phối sản phẩm công nghệ thông tin và viễn thông
_Dịch vụ truy cập Internet
_Dịch vụ nội dung trực tuyến
_Đào tạo công nghệ
_Lắp ráp máy tính
_Nghiên cứu và phát triển
_Đầu tư phát triển hạ tầng và bất động sản
_Dịch vụ giáo dục –đào tạo
_Lĩnh vực bán lẻ
_Giải trí truyền hình
_Quảng cáo
FPT đang làm chủ công nghệ trên tất cả các hướng phát triển của
mình với các chứng chỉ ISO cho tất cả các lĩnh vực hoạt động, CMMi cho
phát triển phần mềm và đang là đối tác Vàng của Cisco, Microsoft, Oracle,
Checkpoint. Bên cạnh đó, FPT cũng đang sở hữu trên 1000 chứng chỉ công
nghệ cấp quốc tế của các đối tác công nghệ hàng đầu thế giới
Các dịch vụ giá trị gia tăng của FPT luôn đáp ứng được nhu cầu của
khách hàng và đối tác. Đến nay, FPT đã giành được niềm tin của hàng nghìn
doanh nghiệp và hàng triệu người tiêu dùng. FPT đã vinh dự được nhận Huân
chương Lao động Hạng nhất do Nhà nước trao tặng năm 2003. Trong suốt
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
7
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
những năm qua, FPT liên tục được bạn đọc tạp chí PC World Việt Nam bình
2.1 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID VÀ ĐTDĐ G1
2.1.1 Giới thiệu về hệ điều hành Android
Google vừa công bố nền tảng di động Android đồng thời đặt mục
tiêu sang năm tới sẽ ra mắt thị trường một phiên bản hệ điều hành di động
mang thương hiệu riêng.
Android được phát triển hoàn toàn dựa trên nền tảng mã nguồn một
hệ điều hành cho máy tính cá nhân. Thay vì chính sách “đóng cửa” như một
số hãng phát triển nền tảng khác, Google quyết định “mở cửa” hoàn toàn
Android, cho phép nhà phát triển được quyền tự phân phối và phát triển xây
dựng một hệ điều hành di động theo ý riêng.
Và hôm 12-11-2008, Google chính thức ra mắt gói công cụ hỗ trợ
phát triển (toolkit) giúp các nhà phát triển trong việc xây dựng các ứng dụng
tương thích tốt nhất với nền tảng Android. Trong lễ ra mắt gói công cụ
Google trực tiếp cho trình diễn một hệ điều hành được hãng phát triển vận
hành như thế nào.
Hình 2.1
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
9
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
Ông Steve Horowitz - giám đốc kỹ thuật của Google - đã trình diễn
mẫu thử nghiệm chiếc điện thoại di động ứng dụng nền tảng hệ điều hành di
động Android. Phiên bản hệ điều hành tích hợp trơn tru các tính năng cơ bản
của ĐTDĐ với các dịch vụ trực tuyến hiện có của Google. Ví dụ, người dùng
có thể dễ dàng xác định vị trí nơi ở của mỗi một cái tên có trong sổ địa chỉ
Contacts nhờ sự kết hợp với dịch vụ bản đồ trực tuyến của Google. Thứ hai,
người dùng có thể liên tục kết nối mạng thoải mái gửi nhận tin nhắn tức thời
với bạn bè thông qua dịch vụ Google Talk.
Kế tiếp ông Horowitz trình diễn phiên bản trình duyệt web được
phát triển trên nền tảng Android vận hành như thế nào trên nền một chiếc
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
11
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
Hình 2.3
Đây là chiếc điện thoại đầu tiên của Google sau khi Google thông
báo về việc phát triển hệ điều hành Android cho các thiết bị không dây
Và mặc dù còn xa mới đạt đến sự hoàn hảo, song chiếc G1 này, bên
cạnh việc sử dụng hệ điều hành Google Android còn được trang bị rất nhiều
tính năng hướng tới người tiêu dùng. Nó thậm chí còn thu hút sự chú ý của cả
các fan hâm mộ iPhone.
Sản xuất bởi tập đoàn HTC của Đài Loan, G1 sẽ được T-Mobile
phát hành tại Mỹ vào ngày 22/10 với mức giá 179 USD kèm theo một bản
hợp đồng 2 năm. Thiết bị này có kích cỡ tương đương với chiếc iPhone (chỉ
dày hơn một chút) và có 2 màu đen và bạc. G1 diện một màn hình cảm ứng
lớn, với phần dưới hơi góc cạnh – có lẽ là để trông phong cách hơn chứ cũng
không thực sự cần thiết lắm – cùng 4 nút bấm và một bàn di bi.
Bên dưới màn hình cảm ứng là một bàn phím QWERTY trượt,
khiến G1 giống phiên bản nâng cấp của chiếc Sidekick mà T-Mobile đang
bán. Bàn phím này sẽ hấp dẫn những người chuộng cảm giác phím cơ hơn là
phím ảo trên màn hình như tác giả.
Liền sát đó là một khe cắm thẻ microSD, đã có sẵn thẻ 1GB. Đừng
làm mất cái thẻ bé xíu này, vì nó là nơi chứa toàn bộ ảnh và video cho G1.
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
12
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
Nếu bạn muốn có thêm dung lượng lớn hơn, G1 hỗ trợ thẻ nhớ tới 16GB.
Chiếc G1 tương đối dễ sử dụng, với giao diện nhạy bén và có khá nhiều dịch
vụ quen thuộc của Google, như tìm kiếm web, Gmail và Google Talk.
Ngoài ra còn có Google Maps, được cải tiến thêm nhờ một la bàn
tích hợp, cho phép bạn xem các địa điểm trong tính năng "Street View" bằng
download này hoàn toàn miễn phí, song có thể sau này sẽ phải trả tiền.
Khi người ta thử nghiệm chiếc G1, không có nhiều chương trình
lắm – chỉ có khoảng 36 ứng dụng và 10 trò chơi – rất nhỏ so với những gì mà
iPhone App Store của Apple đang có – tuy nhiên tương lai chắc chắn sẽ có
nhiều hơn. Trái với cảnh Apple đang chậm chạp thông qua các ứng dụng
iPhone và từ chối một số chương trình cạnh tranh với chương trình của hãng,
Android Market lại khá cởi mở với người phát triển.
Người sử dụng rất có cảm tình với một số ứng dụng, đặc biệt là
“Barcode Scanner” sử dụng máy ảnh 3 megapixel của G1 để đọc các mã vạch
UPC trên hộp sản phẩm, vỏ sách và sau đó dẫn bạn tới trang web có liên
quan. Ứng dụng này rất tiện lợi khi bạn muốn biết thêm thông tin về một cuốn
tiểu thuyết hay kiểm tra giá cả trên mạng.
Một vài ứng dụng tận dụng khả năng định vị toàn cầu của G1, như
ứng dụng mang tên “Ecorio” có thể lần dấu các chuyến đi cũng như tính toán
“mức độ thải khí gây ô nhiễm môi trường” (carbon footprint) của bạn.
G1 cũng kết nối với của hàng MP3 online của Amazon, một địa điểm dễ dàng
tìm kiếm đồng thời lại cung cấp khả năng download các bài hát không có bảo
vệ sao chép một cách nhanh chóng. Nên nhớ rằng, để download các bài hát
khi sử dụng một chiếc iPhone thì cần phải có khả năng truy cập WiFi hơn là
khả năng kết nối 3G.
Tính năng hỗ trợ YouTube được tích hợp trong chiếc điện thoại này
có thể hấp dẫn nhiều người, nhưng đối với người viết, nó không gây ấn tượng
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
14
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
lắm. Mặc dù Google sở hữu YouTube nhưng những clip mà người viết được
xem trên điện thoại Google chất lượng kém hơn hẳn so với trên màn hình máy
tính.
Không may là, tính năng chơi lại bài hát hay video lại bị cản trở bởi
một sự thiếu sót lớn về phần cứng: G1 đã không sử dụng giắc cắm tai nghe
Cái gì đang tác động đến”. Hai mô hình này ảnh hưởng đến cách xây dựng
chương trình. Cách đầu tiên gọi là mô hình hướng thủ tục. Theo cách tiếp cận
này một chương trình được xem như là một dãy là bước tuần tự. Các ngôn
ngữ lập trình cấu trúc như C sử dụng mô hình này. Tuy nhiên, vấn đề đối với
cách tiếp cận này là kích thước lớn và tính phức tạp của chương trình. Cách
tiếp cận thứ hai được gọi là lập trình hướng đối tượng. Lập trình hướng đối
tượng tổ chức một chương trình theo xoay quanh dữ liệu của nó và một tập
các giao tiếp được định nghĩa tác động đến dữ liệu đó.
Sự trừu tượng hóa:
Một thành phần cơ bản của lập trình hướng đối tượng là sự trừu
tượng hóa. Con người quản lý tính phức tạp thông qua sự trừu tượng hóa. Ví
dụ, ta không nghĩ về chiếc xe hơi như một tập bao gồm hàng ngàn chi tiết
riêng biệt. Ta xem nó là một đối tượng cụ thể với các đặc điểm riêng của nó.
Sự trừu tượng hóa này cho phép ta sử dụng chiếc xe hơi mà không bị rối rắm
bởi sự phức tạp của các thành phần tạo nên chiếc xe.
Một cách hữu hiệu để quản lý sự trừu tượng hóa là sử dụng sự phân
lớp. Điều này cho phép ta phân tầng sự phức tạp của hệ thống, chia nhỏ thành
các phần có thể quản lý được. Ví dụ, xe hơi được xem là một đối tượng. Chi
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
16
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
tiết hơn, xe hơi bao gồm nhiều hệ thống con như: tay lái, ghế ngồi, dàn âm
thanh. Giàn âm thanh bao gồm máy nghe CD, băng đĩa …
Ba yếu tố cơ bản của lập trình hướng đối tượng :
Tất cả các ngôn ngữ lập trình hướng đối tượng đều cung cấp các cơ chế cho
phép bạn cài đặt mô hình hướng đối tượng. Đó là tính đóng gói, tính kế thừa
và tính đa hình.
Đây là cơ chế kết hợp giữa mã lệnh với dữ liệu mà nó xử lý, và
tránh bị ảnh hưởng bởi sự can thiệp từ bên ngoài. Tính đóng gói được xem
như là một lớp vỏ bọc bảo vệ mã lệnh và dữ liệu tránh khỏi sự truy cập tùy
Enveronment(PDE). Với JDT, Elipse được xem như là một môi trường hỗ trợ
phát triển Java mạnh mẽ. PDE hỗ trợ việc mở rộng Eclipse, tích hợp các Plug-
in vào Eclipse Platform. Eclipse Platform là nền tảng của toàn bộ phần mềm
Eclipse, mục đích của nó là cung cấp những dịch vụ cần thiết cho việc tích
hợp những bộ công cụ phát triển phần mềm khách dưới dạng Plug-in, bản
thân JDT cũng có thể được coi như là một Plug-in làm cho Eclipse như là một
Java IDE( Intergrated Development Environment)
Kiến trúc Eclipse:
Hình 2.4
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
18
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
• The platform runtime
Công việc chính của Platform runtime là phát xem plug-in nào đang
có trong thư mục plug-in của Eclipse. Mỗi Plug-in đều có 1 tập tin Manifest
liệt kê những kết nối mà plug-in cần. Plug-in chỉ được tải và Eclipse mỗi khi
thực sự cần thiết để giảm lượng tài nguyên yêu cầu và thời gian khởi tạo
• The workspace:
o Workspace chịu trách nhiệm quản lý tài nguyên người dùng
được tổ chức dưới dạng Project. Mỗi Project là một thư mục con
trong thư mục workspace
o Workspace bảo quản cấp thấp lịch sủ những sự thay đổi tài
nguyên, tránh thất thoát tài nguyên người dùng.
o Workspace đồng thời chịu mọi trách nhiệm thông báo những
công cụ cần thiết cho việc thay đổi tài nguyên
• The Workbench:
Workbench là giao diện đồ họa người dùng của Eclipse, gồm có
Standard Widget Toolkit(SWT) và Jface. Eclipse không hoàn toàn bắt buộc
phải sử dụng SWT hay Jface để lập trình giao diện, bạn vẫn có thể sử dụng
AWT hay SWING của Java thông qua việc cài đặt các plug-ins.
• Click phải chuột trên project vừa tạo ra, chọn New Class
• Hộp thoại mới mở ra, gồm có:
o Source Folder: giữ nguyên, không thay đổi
o Package: gõ vào tên gói ứng dụng
o Class Name: gõ vào tên class
o Ở phần Which Method Stubs Would You Like to
Create? Chọn public static void main(String[] args)
• Chọn Finish để kết thúc
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
20
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
Sau khi đã hoàn thành đoạn mã của chương trình cần thực hiện, ta
chuyển sang bước sau:
Chạy chương trình Java:
• Chọn chương trình Java bạn muốn chạy bên cửa sổ Package
Explorer.
• Trên Menu chính, chọn RunRun AsJava Application
• Cửa sổ Task sẽ thay đổi bằng cửa sổ Console.
Gỡ lỗi một chương trình Java
Khi debug một chương trình bạn cần thiết lập các điểm ngắt cần
thiết để kiểm tra lỗi, chương trình sẽ tạm dừng khi gặp các điểm ngắt này, cho
phép bạn gỡ lỗi, nếu không có điểm ngắt này chương trình sẽ tiếp tục thực
hiện. Để tạo các điểm ngắt, bạn chọn dòng cần dừng lại, rồi double-click vào
lề trái màu xám của cửa sổ soạn thảo phia trước dòng lệnh. Một dấu chấm
màu xanh xuất hiện, cho biết đã kích hoạt điểm ngắt. Sau đó, thực hiện các
bước sau để debug chương trình:
1. Chọn chương trình cần debug
2. Chọn Menu Run trên thanh Menu chínhchọn Debug
As Java Application
3. Eclipse tự động chuyển từ Java Perspective sang Debug
đến toàn bộ Project, bắt buộc ta phải tra lại toàn bộ Project để
thay đổi. Eclipse đã trợ giúp làm việc này một cách nhanh
chóng nhờ tính năng Refactor, Eclipse sẽ tự động cập nhật toàn
bộ project cho phù hợp với tên mới, chỉ cần thực hiện theo các
bước sau: nhấn chuột phải trên tên tập tin cần đổi, chọn
RefactorRename. Ngoài ra, Refactor sẽ giúp ta rút trích ra
được lớp giao diện (Interface) từ các lớp dựng sẵn và Eclipse sẽ
tự động cài đặt Interface trên các lớp có sử dụng giao diện này,
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
22
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
tương tự như trên chọn Extract Interface trong Refactor và tiêp
tục thực hiện theo các hộp thoại xuất hiện kế tiếp.
• Local History: giúp bạn so sánh giữa phiên bản mới và phiên
bản cũ của tập tin bạn đang làm việc;
Nhấp phải chuột trên tập tin trong cửa sổ Package
Explorer
Chọn Compare WithLocal History
Chúng ta có thể cho phép Eclipse thay đổi mã chương trình thành
trở lại phiên bản cũ bằng cách tương tự, thay vì chọn Compare With, ta sẽ
chọn Replace With.
• Java Scapbook pages( Trang Java rời đính kèm): Khi viết
chương trình Java, đôi khi ta có một ý tưởng mới mà ta không
chắc nó sẽ hoạt động tốt, ta chỉ muốn thử trước mà không muốn
ảnh hưởng đến chương trình hiện đang làm việc. Eclipse sẽ giúp
bạn viết một chương trình nhỏ rời ra bằng cách sử dụng trình
soạn thảo đơn giản được thực thi dưới dạng command promt.
Đó là Java Scrapbook Pages. Ta có thể gõ vào Scrapbook
Pages các câu lệnh Java và thực thi nó mà không cần khai báo
lớp(class) hay phương thức (method). Để tạo một trang
_ Chọn CodeNew Java files click vào nút Edit
_ Thay đổi lại như sau:
/* ${file_name}
* Created on ${date}
*/
${package_declaration}
${typecomment}
Báo cáo thực tập tốt nghiệp Bộ môn Công Nghệ Thông Tin
24
Giáo viên hướng dẫn: Nguyễn Trung Tuấn Sinh viên thực hiện: Phạm Thị Thùy Linh
${type_declaration}
_ Click OK trong hộp thoại Edit Template
_ Bằng cách tương tự ta có thể thay đổi TypeComment
CodeTypes
• Định dạng lại đoạn chương trình: để đồng bộ hóa toàn bộ đoạn
mã chương trình theo một chuẩn định dạng nhất định, bạn click
phải chuột trên màn hình soạn thảochọn Format. Ta có thể
thay đổi lại chuẩn định dạng này:
_ Chọn PreferencesJavaCode Formatter.
_ Ở phía bên cửa sổ Options, chọn tab New Lines.
_ Đánh dấu kiểm chọn vào Insert a New Line Before an Opening
Brace( Cho phép chèn thêm một dòng trước khi mở ngoặc {).
• Mẫu đoạn mã chung: Eclipse cho phép ta có thể tạo ra những
mẫu đoạn mã chung, giúp ta dễ dàng sử dụng nhiều lần mà
không cần phải gõ lại toàn bộ như trước.
_ WindowPreferencesJavaEditorTemplates
_ Nhấn vào nút New
_ Hộp thoại New Templates xuất hiện : đặt tên cho mẫu sử dụng
là sop và Shortcut for System.out.println() vào ô mô tả(Description)
_ Điển mẫu vào Template: System.out.println(“${cursor}”).