Đồ án lập trình máy tính bỏ túi bằng android, lập trình máy tính bỏ túi bằng android Đồ án lập trình máy tính bỏ túi bằng android, lập trình máy tính bỏ túi bằng android Đồ án lập trình máy tính bỏ túi bằng android, lập trình máy tính bỏ túi bằng android
Trang 1ĐỀ TÀI: LẬP TRÌNH ANDROID
BÁO CÁO TIẾN ĐỘ LẬP TRÌNH MÁY TÍNH BỎ TÚI
Nhóm: Lập trình AndroidLớp: Đ7LTCNTT15Sinh viên thực hiện:
Lê Việt Anh & Nguyễn Anh Hoàng : Tổng quan về Android
Dương Văn Tùng , Lại Thế Thành : Tìm hiểu về phần mềm Eclipse và SDK manages
Nguyễn Hữu Thương, Nguyễn Minh Vương,Nguyễn Ngọc Cương : Phần tích thiết kế hệ thống
Phạm Chí Hổ, Nguyễn Thạc Anh Quân, Nguyễn Đức Sơn, : Thực hiện lập trình và thiết kế giao diện và Code các chức năng hiển thị
Hà Ngọc Duy, Nguyễn Hữu Nghĩa: test ( tìm lỗi chương trình)
Chương I: Tìm hiểu tổng quan về Android
1 Hệ điều hành Android
1.1 Android là gì?
Android là một bộ phần mềm cho các thiết bị di động bao gồm một hệđiều hành, middleware và các ứng dụng thiết yếu Bộ Android SDK cung cấpcác công cụ và API cần thiết để phát triển các ứng dụng trên nền tảng Androidbằng ngôn ngữ lập trình Java
1.2 Các thành phần và tính năng:
Framework phát triển ứng dụng cho phép tái sử dụng và thay thế các
thành phần
Máy ảo Java Dalvik được tối ưu hóa cho các thiết bị di động.
Trình duyệt tích hợp dựa trên engine WebKit mã nguồn mở.
Trang 2Hệ thống đồ họa tối ưu hóa được hỗ trợ bởi một thư viện đồ họa 2D,
3D đặc biệt dựa trên đặc tả kỹ thuật của OpenGL ES 1.0 (tùy chọn phần cứngtăng tốc đồ họa)
SQLite dùng cho việc lưu trữ cấu trúc dữ liệu.
Hỗ trợ các định dạng video, audio và hình ảnh phổ biến.(MPEG4,
H.264, MP3, AAC, AMR, JPG, PNG, GIF)
Hỗ trợ GSM (phụ thuộc phần cứng)
Bluetooth, EDGE, 3G và WiFi (phụ thuộc phần cứng)
Camera, GPS, la bàn, và cảm ứng gia tốc (phụ thuộc phần cứng)
Môi trường phát triển phong phú bao gồm hệ mô phỏng thiết bị, công
cụ gỡ lỗi, tối ưu hóa bộ nhớ và hiệu suất, và một plugin cho IDE Eclipse
1.3 Kiến trúc Android
Sơ đồ hình 2.1 cho thấy các thành phần chính của hệ điều hành Android.Mỗi phần được mô tả chi tiết như sau:
Trang 31.4 Ứng dụng
Android đóng gói kèm một bộ các ứng dụng lõi bao gồm một ứng dụngemail, lịch, chương trình tin nhắn SMS, bản đồ, trình duyệt, danh bạ, … Tất cảcác ứng dụng được viết bằng cách sử dụng ngôn ngữ lập trình Java
2.1.5 Framework ứng dụng
Các nhà phát triển có toàn quyền truy cập vào các API được sử dụng bởicác ứng dụng lõi Kiến trúc ứng dụng được thiết kế sao cho đơn giản hóa việctái sử dụng các thành phần Bất kỳ ứng dụng cũng có thể công bố các tính năngcủa mình và ứng dụng nào khác sau đó đều có thể sử dụng những tính năng này(tùy thuộc vào qui định bảo mật của framework) Cơ chế này cũng cho phép cácthành phần được thay thế bởi người dùng
Nền của tất cả các ứng dụng là một tập hợp các dịch vụ và hệ thống, baogồm:
Trang 4Một tập phong phú và đa dạng Views có thể được sử dụng để xây dựng
một ứng dụng, bao gồm lists, grids, text boxes, buttons và thậm chí một trìnhduyệt web nhúng
Content Providers 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ạ), hoặc chia sẻ dữ liệu của riêng mình
Một Resource Manager, cung cấp quyền truy cập vào tài nguyên phi mã
nguồn như ngôn ngữ, tài nguyên đồ họa, và giao diện
Một Notification Manager cho phép tất cả các ứng dụng có thể hiển thị
thông báo trong thanh trạng thái
Một Activity Manager quản lý vòng đời của các ứng dụng và cung cấp một
backstack navigation thông dụng
1.6 Hệ thống thư viện
Android bao gồm một hệ thống thư viện C / C + +, được sử dụng bởi cácthành phần khác nhau của hệ thống Android Các nhà phán triển truy cập nhữngtính năng cung cấp bởi các thư viện tiếp thông qua Framework ứng dụngAndroid Một số các thư viện chính được liệt kê dưới đây:
Hệ thống thư viện C - kế thừa các hệ thống thư viện chuẩn C (LIBC)
theo giấy phép BSD, điều chỉnh tương thích các thiết bị nhúng trên nền Linux
Media Libraries - dựa trên OpenCORE của PacketVideo; hỗ trợ thu và
phát nhiều định dạng audio, video và hình ảnh tĩnh phổ biến bao gồm: MPEG4,H.264, MP3, AAC, AMR, JPG, và PNG
Surface Manager - quản lý quyền truy cập vào phần hiển thị giao diện cả
2D và 3D Hỗ trợ đa ứng dụng
LibWebCore - trình duyệt web trên một engine hiện đại, có hỗ trợ cho cả
trình duyệt web của Android lẫn các View nhúng
SGL - các engine đồ họa 2D nền bên dưới.
Trang 5Thư viện 3D - một kế thừa dựa trên OpenGL ES 1.0 API; các thư viện,
hoặc sử dụng phần cứng tăng tốc 3D (nếu có) hoặc bao gồm, tối ưu hóa 3D trênphần mềm
Freetype - bitmap và vector font.
SQLite - một engine cơ sở dữ liệu quan hệ mạnh mẽ và nhẹ phục vụ cho tất cả
Máy ảo Dalvik dựa vào nhân Linux cho các chức năng nền như phânluồng và quản lý bộ nhớ cấp thấp
1.8 Linux Kernel
Android dựa trên Linux cho các dịch vụ cốt lõi như hệ thống bảo mật,quản lý bộ nhớ, quản lý tiến trình, hệ thống mạng, và driver điều khiển Nhâncũng đóng vai trò như một lớp trừu tượng giữa phần cứng và tất cả các phầnmềm
Trang 6Chương II: Tìm hiểu phần mềm Eclipse và phần mềm SDK Manager
Sau đây là các bước do tôi tìm hiểu và thực hành
Bước 1: Khởi động chương trình Eclipse
Bước 2: Tạo Android Application Project
Trang 7Bước 3: Điền tên Android Application Project
Bước 4: Next
Trang 8Bước 5: Chọn hình ảnh
Bước 6: Next
Trang 9Bước 7: Next
Trang 11Bước 9: Tạo máy ảo cho android
Trang 13Bước 10: Chạy chương trình
Trang 14Chương III: Thiết kế giao điện và phân tích hệ thống
Dưới đây là từng bước thiết kế giao diện của máy tính bỏ túi
1 Phân tích hệ thống
a Yêu cầu:
+ 10 Button số từ 0 ->9
+ 4 Button cho các phép tính (+,-.*,/)
+ 1 Button cho sự kiện xóa(Clear)
+ 1 Button cho sự kiện (.)
+ 1 EditText dùng hiển thị các phép tính và kết quả tính
+ 1 Button thực hiện kết quả(=)
- Button xóa: Khi người dùng nhập sai số hoặc phép tính thì muốn xóa chỉ cần click vào button (Clear) Và nhập lại
- Dấu (.) thể hiện số thực khi người dùng chia lấy số thực
VD: ½= 0,5 và có thể thực hiện ngược lai 0.5+0.5=1
- EditText dùng hiển thị các con số và phép tính người dùng đã nhập và Trong đó EditText cũng thể hiện kết quả mà vừa tính
- Button (=) dùng thực hiện các các phép toán (+,-,*,/) và đưa ra kết quả
2 Thiết kế giao diện
Trang 15Bước 1: Thiết kế các button
Bước 2: Chạy test chương trình thiết kế
Trang 17Bước 3: Chạy chương trình thiết kế hoàn thiện
Trang 18Chương III: Viết code cho chương trình
1.Code giao diện Button
Trang 19protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main may_tinh); Button btnclear= (Button)findViewById(R.id.btnclear); Button btncham=(Button)findViewById(R.id.btncham); Button btnbang=(Button)findViewById(R.id.btnbang); Button btn0=(Button)findViewById(R.id.btn0);
Button btntru=(Button)findViewById(R.id.btntru); Button btn1=(Button)findViewById(R.id.btn1);
Button btn2=(Button)findViewById(R.id.btn2);
Button btn3=(Button)findViewById(R.id.btn3);
Button btncong=(Button)findViewById(R.id.btncong); Button btn4=(Button)findViewById(R.id.btn4);
Button btn5=(Button)findViewById(R.id.btn5);
Button btn6=(Button)findViewById(R.id.btn6);
Button btnnhan=(Button)findViewById(R.id.btnnhan); Button btn7=(Button)findViewById(R.id.btn7);
Button btn8=(Button)findViewById(R.id.btn8);
Button btn9=(Button)findViewById(R.id.btn9);
Button btnchia=(Button)findViewById(R.id.btnchia); txthienthi =(EditText)findViewById(R.id.txthienthi);
Trang 20String hienthi=txthienthi.getText()+"."; txthienthi.setText(hienthi);
}
}
if(id==R.id.btncong)
{
Trang 21String hienthi=txthienthi.getText()+"+"; txthienthi.setText(hienthi);
}
if(id==R.id.btntru)
{
String hienthi=txthienthi.getText()+"-"; txthienthi.setText(hienthi);
}
if(id==R.id.btnnhan)
{
String hienthi=txthienthi.getText()+"*"; txthienthi.setText(hienthi);
}
if(id==R.id.btnchia)
{
String hienthi=txthienthi.getText()+"/"; txthienthi.setText(hienthi);
}
}