Xậy dựng ứng dụng phân tán dựa trên cơ chế RESTful, giao tiếp thông qua phương thức JSON giữa webservice và client. Cung cấp thông tin phiên cập nhật,chia sẽ thông tin giữa các người dùng với nhau hoặc cho phép sao lưu, in thông tin cá nhân
Trang 1ĐỒ ÁN CHUYÊN NGÀNH
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ANDROID CẬP NHẬT
ĐIỂM CHO SINH VIÊN CÔNG NGHIỆP
Trang 2Chương II: Xây dựng ứng dụng cập nhật điểm 11
Trang 3Danh sách khái niệm cần biết:
_Android Virtual Device (Emulator) : là một máy ảo có thể thực hiện gần như hoàn toàn những gì một máy android có thể thực hiện
_File Explorer của Android : cho phép quản lý các file trong thẻ SD hoặc file dữ liệu hệ thống của android
_Divice ; Android cho phép ta 1 tab để quản lý các thiết bị có thể sử dụng chạy các ứng dụng được viết
_Activity : được hiểu là phần hiển thị giao diện cho 1 ứng dụng, bất kỳ ứng dụng nào cũng cần có ít nhất 1 main_activity để hiển thị nội dung của ứng dụng
_Intent : được sử dụng chủ yếu để khởi tạo các Activity hoặc chạy những tác vụ trong chương trình
_ Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt động
_Layout : chứa các mô tả giao diện cho 1 activity được viết bằng xml
_Drawable : chứa các hình ảnh icon cho ứng dụng
_String : chứa các khai bao chuỗi văn bản của ứng dụng
_AndroidManifest.xml : là file chứa các thông tin liên quan đến hệ thống như các permission cần thiết cho ứng dụng
Trang 4
MỞ ĐẦU Chương I:Tổng quan
1/ Android là gì :
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế
dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông
minh và máy tính bảng Ban đầu, Android được phát triển bởi Tổng công ty
Android, với sự hỗ trợ tài chính từ Googlevà sau này được chính Google mua lại vào năm 2005 Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty phần cứng, phần mềm,
và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di
động Chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10 năm 2008 Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép
Apache Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi.Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng
từ Google Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt
Trang 5Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới vượt qua Symbian vào quý 4 năm 2010, và được các công ty công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu Kết quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam
mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản lý Những dự
án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi hoặc đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày Sự thành công của hệ điều hành cũng khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ
…nguồn Wikipedia
2/Tạo ứng dụng Android đầu tiên:
Trên thanh Toolbar nhấn File ->New->Android Application Project
Trang 6Ta có các mục sau:
Trang 7Ở đây mình sẽ đặt Application Name : My First App
Project Name : MyFirstApp Package Name: com.example.myfirstapp Các thông số SDK để quản lý các phiên bản Android tương thích với ứng dụng được tạo ra Các thông số này sẽ được lưu trong File AndroidManifest.xml ta đã nói ở trên như sau:
Trang 8<manifest
xmlns:android="http://schemas.android.com/apk/res/android" >
_Chạy với Emulator:
Trong Eclipse click chọn Android Virtual Device Manager
Trong cửa sổ Android Virtual Device Manager chọn New->Create AVD sau đó tùy chỉnh cấu hình máy ảo theo nhu cầu của bạn Nhấn Start và đợi cho Emulator khởi động
Sau khi Emulator khởi động thành công ta đã có thể chạy ứng dụng vừa tạo khi nãy bằng cách Click vào nút Run hoặc nhấn
tổ hợp phím Ctrl+F11
Trang 9_Chạy với máy thật:
Bạn chỉ cần vào mục Setting chọn Develop Option-> USB Debug chuyển thành On
Sau đó cắm cáp USB với máy tính, nếu máy tính không nhận dạng được thiết bị bạn nên tìm driver thích hợp cho thiết bị của mình
để có thể kết nối với máy tính
Sauk hi cài driver bạn chỉ cần nhấn nút Run và xem kết quả như chạy trên Emulator
Trang 10TÌM HIỂU VẤN ĐỀ
Chương II:Xây dựng ứng dụng
1/Xây dựng ứng dụng câp nhật điểm:
a/ Tạo giao diện cho ứng dụng:
Ở đây cần xác định các thành phần cơ bản trong giao diện bao gồm Main_Activity, Score_Activity,Score_Table_Activity
_Main_Activity: là giao diện chính của ứng dụng chứa tất cả chứng năng của ứng dụng bao gồm các Button chứa chức năng của ứng dụng
Tạo Layout cho Main_Activity với tên activity_main.xml trong thu mục res/layout/
Trong activity_main.xml ta đăt layout ở dạng LinearLayout ở dạng này các widget sẽ được đặt theo dòng nằm liền kề nhau
Trong LinearLayout ta tạo các Button để thao tác với ứng dụng Mình lấy ví dụ với Button My Score cũng là chức năng chính của ứng dụng
để hiển thị tự động theo kích thước ảnh nguồn của Button
Các giá trị margin để tùy chỉnh vị trí Button trên màn hình hiển thị
Và giá trị src chứa đường dẫn đến thư mục chứa hình ảnh của Button
Trang 11Vì trong Android kích thước màn hình thiết bị rất đa dạng nên mình dung thêm các Layout con để chứa Button để dễ quản lý
<LinearLayout android:layout_width="fill_parent"
tự động xác định chiều cao theo Layout ngoài cùng
Sau cùng khi hoàn tất hết các thành phần trong activity_main ta sẽ có đoạn code sau:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/a ndroid"
android:paddingLeft="@dimen/activity_horizontal_mar gin"
android:paddingRight="@dimen/activity_horizontal_ma rgin"
Trang 14Và giao diện trên thiết bị:
Sau đó là trang thứ 2 của ứng dụng với tên ScoreActivity:
Trong Toolbar chọn New mở thư mục Android và chọn Android
Activity Sau đó click Next chọn BlankActivity điền các thông số cho Activity
Ở mục tên điền ScoreActivity
Sau đó mở file score_activity.xml.Trong Activity này mình vẫn sử dụng LinearLayout và các bước tương tự như MainActivity
Như vậy sau khi xong ta sẽ có đoạn code sau trong file score_activity.xml:
Trang 15<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/andro id"
android:paddingLeft="@dimen/activity_horizontal_mar gin"
android:paddingRight="@dimen/activity_horizontal_ma rgin"
Trang 16Giao diện khi hoàn tất của ScoreActivity:
Trang 17Và sau cùng là trang hiển thị kết quả trả về Ta tạo thêm 1 Activity như đã tạo ScoreActivity và đặt tên ScoreTableActivity
Ở activity này mình sử dụng TableLayout vì các giá trị ở đây trả về là dạng bảng điểm nên table layout là lựa chọn tối ưu nhất
Trong file activity_score_table.xml ta nhập vào các đoạn code sau:
Trang 18<TableLayout
xmlns:android="http://schemas.android.com/apk/res/a ndroid"
Trang 20Giao diện hoàn thiện như sau:
Vậy là phần tạo giao diện cho các thành phần chính của ứng dụng hoàn tất Ta sẽ chuyển sang phần tiếp theo bắt sự kiện cho các Button
Trang 212/Xử lý sự kiện:
a/MainActivity:
Khi nhấn 1 Button để có thể kích hoạt 1 Intent ta phải tạo 1 Onclick cho Button đó trong file layout Khi nãy trong main_layout mình đã tạo
Onclick=”scoreRequest” cho My Score Button
Như vậy công việc bây giờ cần xử lý trong MainActivity.java là viết 1 hàm scoreRequest cho Button này
Hàm này sẽ tạo 1 Intent gửi lệnh mở ScoreActivity giống như ta sử lý Navigation trong lập trình web Hàm này được viết như sau:
//Goi trang score
public void scoreRequest(View score) {
Intent scoreint = new Intent(this,
Ta cũng xử lý như trên, tạo 1 Onclick cho Button này với tên
“xemDiemClick” và viết code xử lý trong ScoreActivity.java như sau:
//Tao event click cho nut Xem diem
public void xemDiemClick(View scoretable) {
Intent look = new Intent(this, ScoreTableActivity.class);
startActivity(look);
}
Vậy ta đã có các Activity liên kết với nhau
Trang 22Nhưng trong ScoreActivity này ta còn có 1 thành phần khác cần xử lý là ImageView dùng để hiển thị captcha Vì captcha cần Internet để tải về,lúc này ta cần sử dụng đến file AndroidManifest.xml
Trong AndroidManifest.xml ta thêm vào dòng sau để cho phép ứng dụng sử dụng kết nối Internet:
<uses-permission android:name="android.permission.INTERNET" />
Để khởi tạo giá trị cho ImageView ta mở ScoreActivity.java, vì ImageView hiển thị 1 captcha lấy về từ Internet ta cần tạo 1 class để lấy ảnh về rồi sau đó gán cho ImageView Ta tạo class DownloadImage.java
Trong class DownloadImage ta cần các hàm sau:
Hàm onPreExecute() dùng để hiển thị thông báo đang thực hiện tiến trình download captcha
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
protected Bitmap doInBackground(String params) {
Bitmap bitmap = null;
String url = params[0];
Trang 23context).finish();
} });
Trang 24Cho phép tải bitmap từ 1 địa chỉ URL
private Bitmap DownloadBitmapUrl(String strUrl) throws
IOException {
Bitmap bitmap = null;
InputStream readData = null;
try {
URL url = new URL(strUrl);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
// add request headerurlConnection.setRequestProperty("User-Agent", USER_AGENT);
urlConnection.setRequestProperty("Cookie",
myCookie);
urlConnection.connect();
readData = urlConnection.getInputStream(); bitmap =
Trang 25Chương III:Kết Quả
Nhóm đã cơ bản nắm bắt được những điều cơ bản để lập trình 1 ứng dụng android nhỏ và đã hoàn thành một số yêu cầu như:
Tạo các giao diện
Liên kết các thành phần trong ứng dụng
Mở kết nối Internet
Lấy mã Captcha từ Internet về ứng dụng
Nhưng song đó vẫn còn 1 số vấn đề cần giải quyết trước khi có thể hoàn thành mục tiêu lớn đó là tạo ra ứng dụng có thể cho phép sinh viên có thể cập nhật điểm số trên chính chiếc điện thoại của mình và những vấn đề còn bỏ ngỏ là:
Truyền và tải dữ liệu của sinh viên vào trang web trường
Download trang kết quả và tùy chỉnh các dữ liệu vào ứng dụng
Để hoàn thành hết các yêu cầu này nhóm sẽ tiếp tục giải quyết trong thời gian tới
Trang 26KẾT LUẬN:
Trong mọi công việc điều có những vấn đề ta sẽ gặp phải trong số đó sẽ có những vấn đề được giải quyết và những vấn đề chưa thể giải quyết như trong đồ án này là làm thế nào để có một ứng dụng đẹp mắt, có một ứng dụng đa năng có khả năng làm được nhiều việc khác nhau.Nhưng với những gì mà nhóm đã làm được
và sẽ làm mình tin rằng mọi vấn đề điều có thể giải quyết, vấn đề đặt ra chỉ là thời gian Như vậy kết quả cho thời gian qua không phải điểm số cao mà là kiến thức đã
có và sẽ tiếp tục có trong quá trình tìm hiểu phát triển ứng dụng này
Trang 27Nhận xét của giáo viên: