Tải bản đầy đủ (.docx) (21 trang)

Đồ án lập trình máy tính bỏ túi bằng android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.78 MB, 21 trang )

ĐỀ 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 Android
Lớp: Đ7LTCNTT15
Sinh 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ấp
cá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 Android
bằ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ở.
Hệ 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ứng
tă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:
1.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ụng
email, 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ởi
cá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ệc
tá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ăng
củ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ác
thà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, bao
gồm:
Mộ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ình
duyệ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ác
thành phần khác nhau của hệ thống Android. Các nhà phán triển truy cập những
tính năng cung cấp bởi các thư viện tiếp thông qua Framework ứng dụng
Android. 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.
Thư 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ên
phầ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ả
các ứng dụng.
1.7 Android Runtime
Android bao gồm một tập các thư viện lõi cung cấp hầu hết các chức
năng sẵn có trong thư viện của ngôn ngữ lập trình Java.
Mỗi ứng dụng Android chạy trong tiến trình riêng của mình, với thực thể
riêng của máy ảo Dalvik. Dalvik đã được viết để một thiết bị có thể chạy nhiều
máy ảo một cách hiệu quả. Máy ảo Dalvik thực thi file trong định dạng
Executable Dalvik (dex). Định dạng được tối ưu hóa bộ nhớ giảm thiểu

footprint. Máy ảo được đăng ký và chạy các class biên dịch bởi một Java
Compiler thành các file dex, đính kèm các công cụ “dx”.
Máy ảo Dalvik dựa vào nhân Linux cho các chức năng nền như phân
luồ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ân
cũ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ần
mềm.
Chươ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
Bước 3: Điền tên Android Application Project
Bước 4: Next
Bước 5: Chọn hình ảnh
Bước 6: Next
Bước 7: Next
Bước 9: Tạo máy ảo cho android
Bước 10: Chạy chương trình
Chươ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ả(=)
b. Phân tích
- Đối với 10 Button thể hiện số từ 0->9. Khi người dùng click
vào một số bất kỳ thì sẽ hiển thị ra số người dùng đã click vào.
- Tiếp đến 4 Button thể hiện cho các phép tính (+,-,*,/). Khi muốn
công hoặc nhân chia hai chuỗi với nhau. Người dùng phải nhập
số từ 0->9 sau đó lại nhập phép tính thể hiện các dưới dạng
button. Xong lại nhập chuỗi số muôn thực hiện và cuối cùng ấn
button bằng và đưa kết quả ra Edit Text.
- 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
Bước 1: Thiết kế các button
Bước 2: Chạy test chương trình thiết kế
Bước 3: Chạy chương trình thiết kế hoàn thiện
Chương III: Viết code cho chương trình
1.Code giao diện Button
protectedvoid 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);
//Set click
btn0.setOnClickListener(this);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
btn9.setOnClickListener(this);
btncham.setOnClickListener(this);
btncong.setOnClickListener(this);

btntru.setOnClickListener(this);
btnnhan.setOnClickListener(this);
btnchia.setOnClickListener(this);
btnclear.setOnClickListener(this);
}
2.Code sự kiện Button hiển thị
publicvoid onClick(View v) {
// TODO Auto-generated method stub
int id=v.getId();
if(id==R.id.btnclear)
{
txthienthi.setText("");
}
if(id==R.id.btn0)
{
String hienthi=txthienthi.getText()+"0";
txthienthi.setText(hienthi);
}
if(id==R.id.btn1)
{
String hienthi=txthienthi.getText()+"1";
txthienthi.setText(hienthi);
}
if(id==R.id.btn2)
{
String hienthi=txthienthi.getText()+"2";
txthienthi.setText(hienthi);
}
if(id==R.id.btn3)
{

String hienthi=txthienthi.getText()+"3";
txthienthi.setText(hienthi);
}
if(id==R.id.btn4)
{
String hienthi=txthienthi.getText()+"4";
txthienthi.setText(hienthi);
}
if(id==R.id.btn5)
{
String hienthi=txthienthi.getText()+"5";
txthienthi.setText(hienthi);
}
if(id==R.id.btn6)
{
String hienthi=txthienthi.getText()+"6";
txthienthi.setText(hienthi);
}
if(id==R.id.btn7)
{
String hienthi=txthienthi.getText()+"7";
txthienthi.setText(hienthi);
}
if(id==R.id.btn8)
{
String hienthi=txthienthi.getText()+"8";
txthienthi.setText(hienthi);
}
if(id==R.id.btn9)
{

String hienthi=txthienthi.getText()+"9";
txthienthi.setText(hienthi);
}
if(id==R.id.btncham)
{
if(txthienthi.getText().toString().equals(""))
{
String hienthi=txthienthi.getText()+".";
txthienthi.setText(hienthi);
}
}
if(id==R.id.btncong)
{
String 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);

}
}

×