MAP524/DPS924 - 2014

From CDOT Wiki
Revision as of 01:16, 24 November 2013 by Rahul Gideon Thomas (talk | contribs) (Assignment 2 - Proposals)
Jump to: navigation, search


Learning goes on after leaving classrooms and computer labs.Let us use this wiki to do collaborative learning and share our excitement and headaches in developing Android applications. Feel free to create new and interesting topics on this wiki page.

Android Discovery Zone

In Lab2, when I was modifying and saving FirstActivity.java.bak while using NLED, the editor automatically saved a FirstActivity.java.bak in the same folder. When running 'ant debug' to compile, it generated error, explaining that unauthorized file was contained in the source folder. The way to solve this issue is to simply remove the .bak file or any other file extensions that is not the .java extension in the source directory. -- Peter

Debugging and Testing Android Code

Resources for Learning Android App Development

Labs Q&A Fall 2013

  • Has anyone run into a problem where the emulator refuses to rotate (at all, never mind the layout of the running app)? I tried Ctrl+f11/f12, f11/f12, but none of them work. And I don't have a number pad on my laptop to try 7/9. --Andrew
    • I pressed the HOME key (number pad) on my laptop and the emulator's orientation changed from portrait to landscape. (Peter)
      • Figured it out - it was already used by the xfce window manager to switch to desktop 11/12, just cleared that binding and now it works as it should with the emulator. --Andrew
  • If my app has an activity (activity1) that starts another activity (activity2), what's the relationship between these two? Is it possible that Android will kill activity1 since activity2 is te current activity? What if activity2 is not full screen, does that make a difference? -- Andrew
  • How to capture emulator screenshots in Eclipse? [1] [2]
  • How to export logging data from LogCat to a text file? [3] [4]
  • How to load the externally created SQLite database into an Android project?
    • Read the "Pre-Creating the Database" section in the textbook (pp. 285-289).
      • the assets folder and the /data/data/<package name>/databases folder
  • How do I open the database under data/data using the SqlLite browser?
  • Will Android do anything to prevent more than one copy of a content provider being created at the same time? If not - how to prevent data corruption or inconsistency?
  • I managed to get Google Maps/MyPlaces app to run on the emulator. It involved copying 2 APKs from a real device onto the emulator: /data/app/com.android.vending-1.apk and /data/app/com.google.android.gms-1.apk. Strangely enough, it seems to work on an Android API emulator but not a Google API emulator; adb install looked like it froze on attempting to install the APKs to a Google API emulator. The app runs, however, I get a bunch of repeated debug messages of "Failed to find provider info for com.google.android.gsf.gservices". If you want to give it a shot, here are some basic directions:
  1. Ensure you are using an Android API emulator, NOT the Google API! For some reason the APKs didn't install for me (or maybe you can figure it out...)
  2. Install and run the app on a real Android device. This is just to ensure that you have the updated version of Google Play Services on your device, and if not, you'll be prompted to update it using a Google login. The app should run after the update.
  3. Copy the 2 above APKs from the device to local storage (use -s option to specify device if you currently have 2 or more connected, use adb devices to see IDs)
    • adb pull data/app/com.google.android.gms-1.apk gms-1.apk
    • adb pull data/app/com.android.vending-1.apk vending-1.apk
  4. Start the emulator if you haven't done so already, and install the 2 APKs to the emulator (once again use -s option to specify device if necessary)
    • adb install gms-1.apk
    • adb install vending-1.apk
  5. Run MyPlaces on the emulator. It should run now... I don't know if I'm allowed to put these APKs up for download... --Mdafidchao 11:38, 14 November 2013 (EST)

Assignment 1 Q&A

  • Is the relationship between schedule and student/teacher 1:1? (ie: to delete a schedule you can just delete the account that schedule is attached to) -- Dennis
The assignment specifies we include "validfrom" and "validto" dates. This implies that we could have several schedules for each student/teacher. eg. one for summer, another for fall, etc. However, this being our first assignment I think it would be reasonable to have exactly one timetable per student/teacher. We would then use the "validfrom" and "validto" dates to tell us when the schedule has become outdated.... John

Assignment 2 - Proposals