Lập trình với Android App Inventor
Kéo và thả theo cách của bạn để lập trình Android.
MIT App Inventor, tái phát hành như là một dịch vụ beta (tháng 5, 2012) do Trung tâm MIT cho việc học tập điện thoại di động sau khi tiếp quản dự án từ Google, là một ngôn ngữ lập trình trực quan để phát triển các ứng dụng cho nền tảng điện toán di động Android. Nó dựa trên khái niệm của các khối, và các ứng dụng được thiết kế bằng cách lắp khối đoạn mã với nhau. Điều này nghe có vẻ như là một cách rất trẻ con của chương trình, đặc biệt là cho độc giả dày dạn của Linux Journal . Nhưng sau đó một lần nữa, App Inventor sẽ tickle các lập trình viên trẻ em ở trong bạn và làm cho bạn cười khúc khích dễ dàng mà bạn có thể phát triển các ứng dụng cho thiết bị Android của bạn.Trong bài viết này, tôi mô tả làm thế nào để sử dụng máy ảnh trên thiết bị Android, phát triển e-mail và các ứng dụng nhắn tin văn bản dựa trên và cũng cho thấy làm thế nào để sử dụng cảm biến vị trí để lấy vị trí địa lý của bạn. Hãy bắt đầu.Bắt đầu
App Inventor có yêu cầu cài đặt tối thiểu và là hoàn toàn dựa trên trình duyệt. Bạn cần cài đặt Java làm việc trên hệ thống của bạn, vì nó sử dụng Java Web Start cho hoạt động của nó. Điểm trình duyệt của bạn để http://appinventor.mit.edu , và khi bạn đăng nhập bằng tài khoản Google của bạn, bạn sẽ thấy một màn hình như thể hiện trong hình 1. Điều này được gọi là Page Dự án nơi bạn có thể nhìn thấy các dự án hiện có của bạn và tạo ra những cái mới.
Bây giờ, hãy phát triển và triển khai một ứng dụng Android bằng cách sử dụng Inventor App và trong quá trình tìm hiểu các chu kỳ phát triển triển khai cơ bản. Tạo một dự án mới bằng cách sử dụng nút New Project, và nhập tên cho dự án của bạn, nói "Project1". Bây giờ bạn sẽ thấy cửa sổ thiết kế cho dự án của bạn. Cửa sổ thiết kế bao gồm bốn tiểu hợp phần. Palette ở phía tận cùng bên trái của cửa sổ là giữ chỗ cho tất cả các thành phần có sẵn cho các dự án của bạn. Viewer là ứng dụng sẽ được thiết kế bằng cách đặt các thành phần khác nhau (đây là nơi bạn thiết kế giao diện người dùng cho các ứng dụng của bạn). Các thành phần hiển thị các thành phần được sử dụng trong dự án của bạn, và cột Properties là nơi mà bạn chỉ định các thuộc tính của các thành phần.
Trước tiên, hãy để tôi giải thích ngắn gọn các khái niệm của các thành phần. Một dự án App Inventor được tạo thành từ các khối xây dựng được gọi là các thành phần, chẳng hạn như một nhãn văn bản để hiển thị văn bản, một hộp văn bản để người sử dụng đầu vào, một thành phần máy ảnh bấm vào hình ảnh và vv. Hiện nay, bạn sẽ thấy một vài loại của các thành phần thành phần cơ bản, chẳng hạn như đối với đầu vào của người dùng và hiển thị của văn bản với các thành phần chuyên biệt hơn, chẳng hạn như cho hiển thị các phương tiện truyền thông và hình ảnh động, và các thành phần hoạt động như một giao diện với các cảm biến thiết bị. Một tài liệu tham khảo đầy đủ cho tất cả các thành phần là có sẵn tạihttp://p.pw/badGto . Các thành phần có liên quan đến hành vi, phương pháp và tài sản. Một số thuộc tính có thể được thiết lập, trong khi những người khác chỉ có thể được đọc.
Trong dự án đầu tiên này, chúng ta hãy sử dụng các thành phần sau: Camera, Button và hình ảnh. Mã thường cho thấy nó tốt hơn, nhưng một thời gian ngắn ở đây là những gì bạn sẽ làm cách nhấn vào nút khởi động máy ảnh trên điện thoại của bạn, mà bạn sử dụng để nhấp vào một hình ảnh, sau đó được hiển thị bằng cách sử dụng các thành phần hình ảnh. Dưới đây là các bước:
- Kéo một thành phần máy ảnh từ bảng Viewer. Nó sẽ hiện lên dưới không thể nhìn thấy các thành phần dưới đây Viewer. Theo mặc định, nó sẽ được đặt tên như Camera1, mà bạn có thể, tất nhiên, thay đổi một cái gì đó khác.
- Kéo một Button Viewer, và từ tài sản, thay đổi văn bản của nó "Click".
- Kéo một thành phần hình ảnh lên Viewer.
- Bạn có thể chơi xung quanh với các thuộc tính màn hình để thiết lập những thứ như màu nền tiêu đề, và định hướng. Đối với mục đích của dự án này, thiết lập Tiêu đề "Click".

Hoàn thành thiết kế giao diện người dùng (Hình 2). Tiếp theo, hãy để các thành phần của chương trình sử dụng các khối.
Mở Editor Blocks, nên bắt đầu tải về các tập tin JAR cho biên tập viên. Nó sẽ yêu cầu bạn cho vị trí của các lệnh thiết lập Inventor App nếu bạn không cài đặt chúng trong các vị trí tiêu chuẩn dưới / usr / google. Editor Blocks cho dự án hiện tại sẽ trông giống như Hình 3. Trở lại với mô tả cho dự án này, mục đích là để kích hoạt camera của điện thoại khi nút được nhấn vào. Điều này được thực hiện với khối mã "Khi Button1.click", mà bạn kéo từ cửa sổ Blocks bên trái. Khi nút được nhấn vào, bạn muốn chiếc máy ảnh của thiết bị được kích hoạt, do đó kéo "gọi Camera1.TakePicture" khối bên trong các khối trước. Sau khi ảnh được chụp, bạn sẽ muốn nó được hiển thị bằng cách sử dụng các thành phần hình ảnh. Vì vậy, chèn khối "khi Camera1.AfterPicture" vào trình soạn thảo, và sau đó thiết lập "Image1.Picture" vị trí của hình ảnh được lưu.

Bây giờ bạn đã thiết kế giao diện người dùng và lập trình logic của ứng dụng, bạn đã sẵn sàng để kiểm tra nó. Quay trở lại cửa sổ thiết kế, và bên phải, click vào Package Điện thoại → Tải đến máy tính này. Điều đó sẽ bắt đầu tải về các gói Android (apk file) cho dự án của bạn. Bây giờ, chuyển tập tin này vào thiết bị Android của bạn, và cài đặt nó.Sau đó, hãy thử nó ra.
Một Peek dưới mui xe
Bây giờ bạn đã thiết kế và triển khai ứng dụng Android đầu tiên của bạn, và bạn đã sử dụng các thành phần (thành phần máy ảnh và các thành phần hình ảnh), đã gán cho họ hành vi và đặt thuộc tính. Nếu bạn đã quen thuộc với ý tưởng về lập trình hướng sự kiện, bạn đã nhận ra rằng App Inventor là một khung lập trình hướng sự kiện. Sự kiện này có thể được người sử dụng nhấp chuột vào một nút hoặc tiếp nhận các tin nhắn văn bản. Ví dụ, khi nút được nhấn vào, một sự kiện được cho là đã xảy ra, và để đáp ứng với sự kiện này, máy ảnh được kích hoạt. Một lần nữa, khi máy ảnh kết thúc chụp ảnh và lưu nó, mã phản ứng sử dụng vị trí hình ảnh để hiển thị nó bằng cách sử dụng một thành phần hình ảnh.Trước đó, tôi đã đề cập rằng các thành phần có liên quan đến hành vi, phương pháp và tài sản. Bạn có thể tìm thấy những cho một thành phần bằng cách nhấn vào các thành phần trong trình soạn thảo Blocks. Ví dụ, hình 4 cho thấy phương pháp có sẵn cho các thành phần Camera (Camera1.TakePicture) và hành vi (Camera1.AfterPicture).

Bên cạnh các khối liên kết với các thành phần, các khối lập trình cơ bản hơn có sẵn: khối Toán, khối logic, khối điều khiển và những người khác. (Tôi sẽ chứng minh bằng cách sử dụng một vài trong số này trong một trong các dự án sau này trong bài viết này.)
Bây giờ bạn có một ý tưởng cơ bản của phát triển các ứng dụng bằng cách sử dụng App Inventor, hãy nhìn dưới mui xe một chút, bắt đầu từ nguồn. Tải về mã nguồn cho "Project1" bằng cách đi đến Trang dự án và lựa chọn Project1 và nhấp vào More Actions → Tải về Source. Điều đó sẽ bắt đầu tải về các nguồn trong một file zip. Khi bạn giải nén các tập tin, bạn sẽ có hai thư mục: src và youngandroidproject. Dưới thư mục src, bạn sẽ có một appinventor được gọi là thư mục con, nơi các thư mục con, và sau đó ai_droidery/Project1 (lưu ý rằng "droidery" là tên người dùng Google của tôi). Trong thư mục này, bạn sẽ thấy các tập tin nguồn Screen1.blk, Screen1.scm và Screen1.yail.Screen1.blk dựa trên XML là một đại diện của các khối hình ảnh đã được tạo ra trước đó, Screen1.yail là một ngôn ngữ trung gian dựa trên ngôn ngữ Đề án sử dụng App Inventor, sau đó được cho ăn để Kawa để tạo ra các gói phần mềm để cài đặt Android trên Android thiết bị. Screen1.scm Các tập tin là một đại diện JSON của các thành phần được sử dụng trong các dự án với các chi tiết về các thành phần, chẳng hạn như thông tin phiên bản. Nếu bạn đang quan tâm để hiểu App Inventor thực sự hoạt động như thế nào, bạn cũng có thể muốn kiểm tra mã nguồn của App Inventor (xem Tài nguyên).
Tiếp theo, hãy di chuyển để trở thành quen thuộc với bộ cảm biến và một số các thành phần khác có sẵn trong App Inventor.
Cảm nhận thế giới sử dụng cảm biến
Cảm biến, đúng với tên của họ, là những đôi mắt và đôi tai của thiết bị Android của bạn.Chúng cho phép thiết bị của bạn để cảm nhận thế giới xung quanh nó. Ví dụ, các bộ cảm biến vị trí trên thiết bị của bạn theo dõi thông tin vị trí hiện tại của bạn bằng cách sử dụng điện thoại di động của bạn và dữ liệu thông tin tín hiệu Wi-Fi và GPS. Bộ cảm biến khác trên thiết bị Android của bạn bao gồm cảm biến tiệm cận và cảm biến chuyển động. Trong phần này, chúng ta hãy sử dụng các bộ cảm biến vị trí trên thiết bị Android của bạn để viết hai ứng dụng đơn giản có thể được sử dụng riêng của họ hoặc như là một điểm khởi đầu cho một cái gì đó hữu ích hơn và tùy chỉnh. Trong quá trình này, bạn sẽ học cách sử dụng thêm một vài thành phần Inventor App.E-mail Vị trí hiện tại của bạn
Hãy xem xét một kịch bản không-để-hư cấu khi bạn có thể muốn nói với bạn bè của bạn chính xác bạn đang ở đâu vào lúc này để cô có thể lái xe xuống để đáp ứng bạn.Hoặc, bạn chỉ đơn giản là có thể bị mất. Dù bằng cách nào, cảm biến vị trí có thể giúp đỡ.Hãy gọi dự án này "LocationOnClickEmail". Giao diện người dùng cho dự án này có vẻ như một trong những thể hiện trong hình 5. Bên cạnh các thành phần cơ bản, chẳng hạn như nhãn văn bản và các nút, thêm các thành phần LocationSensor (được tìm thấy theo thể loại cảm biến) và một thành phần ActivityStarter (tìm thấy trong các loại công cụ khác). Các thành phần ActivityStarter, mà đã được đặt tên là "MailAppStarter" sẽ được sử dụng để bắt đầu ứng dụng e-mail trên các thiết bị Android. Đối với các thông tin chi tiết về phần ActivityStarter, tham khảo đếnhttp://appinventor.mit.edu/learn/reference/other/activitystarter.html.
Bây giờ bạn cần phải thêm logic dự án bằng cách sử dụng Editor Blocks như trước. Hình 6 cho thấy trạng thái cuối cùng của trình soạn thảo Blocks cho dự án này.

Logic ứng dụng có thể được chia thành hai bước có được vị trí bằng cách sử dụng cảm biến Location khi nút Vị trí Get được nhấp. Điều này được thực hiện trong "khi GetLocationButton.Click" khối mã. Khi nút này được nhấn vào, cảm biến vị trí được kích hoạt. Khi cảm biến Vị trí đã có thể để có được những thông tin vị trí, nó sẽ gọi phương thức "khi LocationSensor1.LocationChanged" các nhãn văn bản được cập nhật với các dữ liệu vị trí. Tiếp theo, khi được nhấp nút Email tri, tài sản DataUri thành phần MailAppStarter được thiết lập để khởi động ứng dụng gửi thư. Ở đây, người nhận được thiết lập để "droidery@gmail.com", chủ đề "My Location" và cơ thể của tin nhắn tới địa chỉ thu được. Người nhận và chủ đề có thể được thay đổi trong các ứng dụng bưu phẩm trên thiết bị.
Điều đó hoàn thành các dự án hiện tại. Để biết thêm chi tiết về cách sử dụng cảm biến Vị trí và các thành phần khởi xướng App, hãy tham khảo App Inventor Tài liệu tham khảo (xem Tài nguyên).
Text-Ứng dụng cảm biến dựa trên Địa điểm Tin nhắn
Trong ứng dụng cuối cùng, bạn bắt đầu vị trí gửi sự kiện. Điều gì sẽ xảy ra nếu bạn muốn thiết kế một ứng dụng sẽ chạy như một dịch vụ, như vậy mà khi nó nhận được một yêu cầu thông qua tin nhắn văn bản, nó sẽ gửi vị trí hiện tại của bạn cho người gửi?Ngay cả với bảo mật là một vấn đề nhạy cảm trên thế giới kết nối ngày nay, như một ứng dụng có thể hữu ích nếu bạn muốn chắc chắn rằng bé của bạn không-để-trưởng thành không bị mất, ví dụ. Ngoài thành phần cảm biến tri, bạn sẽ trở nên quen thuộc với các thành phần Nhắn tin trong ứng dụng này.Đây là ý tưởng trên nhận được một tin nhắn văn bản với "vị trí" trong cơ thể của nó, ứng dụng sẽ trả lời với vị trí hiện tại như một tin nhắn văn bản. Các hành động được thực hiện sau khi nhận được một tin nhắn văn bản được hiển thị trong hình 7. Đây là cốt lõi logic cho ứng dụng. Trong thủ tục "Texting1.MessageRecieved", "số" và "messagetext" là có sẵn như là đối số. Nếu "messagetext" là "vị trí", sau đó kiểm tra xem vị trí đã được thu được. Nếu có, sau đó xây dựng một trả lời bằng cách sử dụng địa chỉ và gửi văn bản, nếu không, gửi một thông báo lỗi khi trả lời.

Các ứng dụng hoàn chỉnh, cùng với những người khác, có thể được tải về từhttp://p.pw/badGtp . Bạn có thể tải lên lưu trữ nguồn (zip). App Inventor trực tiếp và thử các ứng dụng sau khi đóng gói chúng.Trong bài viết này, tôi đã nghiêm chỉnh tập trung vào sử dụng một thiết bị Android để thử nghiệm các ứng dụng. Đối với sử dụng cơ bản, bạn cũng có thể sử dụng giả lập đó là có sẵn trong App Inventor và cũng sử dụng một phương pháp phát triển trực tiếp nơi bạn có thể cài đặt ứng dụng trực tiếp vào điện thoại của bạn. Xem trang Web App Inventor để thử này ra ngoài. Tôi đã thử nghiệm các ứng dụng trên Samsung Galaxy SII chạy Android 2.3, nhưng tôi hy vọng sẽ không có bất kỳ vấn đề với chạy chúng trên các thiết bị khác chạy hệ điều hành Android 2.2 và cao hơn.
Nhìn về phía trước
Tôi bắt đầu bài viết này với ý định có một số chương trình thú vị cho nền tảng Android, và tôi hy vọng nó đã được vậy, đến nay. Nếu bạn quan tâm trong nhìn vào App Inventor hơn nữa, những điều đầu tiên mà bạn có thể muốn kiểm tra, ngoài việc mở rộng các dự án gì đó vui vẻ và hữu ích, là những thành phần khác nhau. Trong số lưu ý đặc biệt là thành phần lưu trữ dữ liệu cho phép bạn lưu trữ dữ liệu trên thiết bị, các thành phần Web để tương tác với nội dung Web từ xa, các thành phần cảm biến và Truyền thông các thành phần khác.App Inventor là niềm vui, nhưng bạn có thể cảm thấy rằng mặc dù nó tốt như là một điểm khởi đầu, bạn muốn một ngôn ngữ lập trình truyền thống hơn khi bạn trở nên quen thuộc hơn với phát triển Android. Thay vì hoàn toàn ném dự án Inventor App của bạn đi, hãy xem xét sử dụng App Inventor Java Cầu sử dụng các thành phần Inventor App của bạn trong khi bạn viết các ứng dụng Android bằng cách sử dụng cách truyền thống của lập trình Java.
Nếu bạn cảm thấy cần để chạy riêng của dịch vụ App Inventor của bạn, Trung tâm MIT cho việc học tập di động đã có sẵn lọ App Inventor để cho phép bạn lưu trữ các dịch vụ riêng của bạn (xem Tài nguyên).
Nếu bạn muốn tiếp tục tìm hiểu App Inventor chính nó, hai quyển sách tuyệt vời có sẵn: David Wolber, Hal Abelson, Ellen Spertus và Liz Looney của Inventor App: Tạo ứng dụng Android của riêng bạn (O'Reilly) và Jason Tyler của Inventor App cho Android: Xây dựng của bạn Apps riêng-Không Kinh nghiệm (Wiley).
Nếu bạn rất thích App Inventor, bạn có thể muốn nhìn vào một số công cụ khác cho các lập trình thiết bị Android của bạn trực quan, chẳng hạn như DroidDraw và Corona. Và nếu bạn muốn lập trình Android trực quan trên các thiết bị chính nó, hãy kiểm tra Catroid.
Tài nguyên
MIT App Inventor: http://appinventor.mit.eduThiết lập máy tính của bạn:http://p.pw/badGtq
App Inventor Tài liệu tham khảo:http://p.pw/badGto
APK File Format: %% http://en.wikipedia.org/wiki/APK_ 28file_format 29
Theo Hood của App Inventor:http://p.pw/badGts
App Inventor Dự án mã nguồn mở: http://p.pw/badGtt
Hoạt động Hợp phần khởi xướng:http://p.pw/badGtu
App Inventor Java Bridge
Chạy Inventor App riêng của bạn
App Inventor Course: http://p.pw/badGtv
"Android phát triển ứng dụng" trình bày bởi Peter McNeil:http://p.pw/badGtw
Catroid dự án: http://p.pw/badGtx
Mã Điều này (có sẵn trong appinventor_article các thư mục con):http://p.pw/badGtp
Không có nhận xét nào:
Đăng nhận xét