mobile programming lecture 19
DESCRIPTION
Mobile Programming Lecture 19. Publishing to Google Play. Agenda. Preparing Your App for Google Play Positions with The Mobile Lab. Publishing to Google Play. What are some things that you think should be done before you publish to your app to Google Play?. Debugging. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/1.jpg)
Mobile ProgrammingLecture 19
Publishing to Google Play
![Page 2: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/2.jpg)
Agenda
• Preparing Your App for Google Play
• Positions with The Mobile Lab
![Page 3: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/3.jpg)
![Page 4: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/4.jpg)
Publishing to Google Play
What are some things that you think should be done before you publish to your app to Google Play?
![Page 5: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/5.jpg)
Debugging
• We've covered debugging previously
• If you don't know how to debug at this point, that's my fault.
![Page 6: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/6.jpg)
Preparing Your App
Test your application extensively on an actual device
• �JUnit and other test cases.
• UI/Application Exercise Monkey
![Page 7: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/7.jpg)
UI/Application Exercise Monkey
• The Monkey is a command-line tool that you can run on any emulator instance or on a device
• It sends a pseudo-random stream of user events into the system, which acts as a stress test on the application software you are developing.
![Page 8: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/8.jpg)
UI/Application Exercise Monkey
• The Monkey includes a number of options, but they break down into four primary categories:
o Basic configuration options, such as setting the number of events to attempt
o Operational constraints, such as restricting the test to a single package
o Event types and frequencies
o Debugging options
![Page 9: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/9.jpg)
UI/Application Exercise Monkey
• If your application crashes or receives any sort of unhandled exception, the Monkey will stop and report the error
• If your application generates an “application not responding error”, the Monkey will stop and report the error
![Page 10: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/10.jpg)
UI/Application Exercise Monkey
e.g.
$ adb shell monkey -p your.package.name -v 500
Command Options
![Page 11: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/11.jpg)
Preparing Your App
What do you think are some Things That Cannot Change after you first publish an app to the market?
![Page 12: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/12.jpg)
Preparing Your App
Choose a good package name!
Things That Cannot Change
![Page 13: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/13.jpg)
Preparing Your App
Test your application extensively on an actual device
• �JUnit and other test cases.
• �UI/Application Exercise Monkey
• Obtain one or more physical devices �Run it under realistic network conditions �Can verify that the UI elements are sized correctly �Can check that your performance and battery efficiency
are acceptable
• �Testing your Application
![Page 14: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/14.jpg)
Preparing Your App
• �Consider adding an End User License Agreement in your application
o To protect your person, organization, and intellectual property, you may want to provide an End User License Agreement (EULA) with your application
• http://bees4honey.com/blog/tutorial/adding-eula-to-android-app/
![Page 15: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/15.jpg)
Preparing Your App
• �Consider adding support for Android Market Licensing
o This is optional.
o �If you are publishing a paid application through Android Market, consider adding support for Android Market Licensing.
![Page 16: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/16.jpg)
Preparing Your App
• �Consider adding support for Android Market Licensing
• With Google Play Licensing, your application can query Google Play at run time to obtain the licensing status for the current user, then allow or disallow further use as appropriate
• an application can o check the licensing status and then apply custom constraints that
allow the user to run it unlicensed for a specific validity periodo restrict use of the application to a specific device, in addition to any
other constraints.
• More on Licensing
![Page 17: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/17.jpg)
Preparing Your App
• �Specify an icon and label in the application's manifesto The icon and label that you specify in an
application's manifest are important because they are displayed to users as your application's icon and name
o �They are displayed on the device's Home screen, as well as in Manage Applications, My Downloads, and elsewhere.
o Additionally, publishing services may display the icon and label to users.
o �Define the attributes android:icon and android:label in <application> element in the manifest.
![Page 18: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/18.jpg)
Preparing Your App
• �Before you do the final compile of your application
Version your application• Before you compile your application, you must make sure that you
have defined a version number for your application, specifying an appropriate value for both the android:versionCode and android:version Name attributes of the <manifest> element in the application's manifest file.
• Carefully consider your version numbering plans in the context of your overall application upgrade strategy.
• If you have previously released a version of your application, you MUST make sure to increment both the Version Code and Version Name Attributes.
• �Versioning your Application
![Page 19: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/19.jpg)
Preparing Your App
• �Before you do the final compile of your application
Version your application
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.package.name" android:versionCode="2" android:versionName="1.1">
<application android:icon="@drawable/icon" android:label="@string/app_name">
... </application></manifest>
![Page 20: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/20.jpg)
Preparing Your App
Next, you need to
• Obtain a suitable private key
• Compile your application in release mode
• Sign your application with your private key
• Align the final APK package
Do you want to learn how to do this via the command line?
• Signing your application
![Page 21: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/21.jpg)
Preparing Your App
To do this in Eclipse
• File > Export > Export Android Application
To get an idea of what values you should enter in the form, look at the sample values used on the command line here
![Page 22: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/22.jpg)
Preparing Your App
Preparing for Release
![Page 23: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/23.jpg)
Mobile Lab Positions
Interested in working for the Mobile Lab?
![Page 24: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/24.jpg)
Do you have what it takes?
• The Mobile Lab is looking for interns for this coming fall
• If you are interested in working for The Mobile Lab
1. Send resumes to [email protected]
2. Candidates selected for interview
3. Interviews conducted during the 1st and 2nd week of classes
4. Candidates notified about interview results
![Page 25: Mobile Programming Lecture 19](https://reader036.vdocuments.site/reader036/viewer/2022070414/56814da4550346895dbb0176/html5/thumbnails/25.jpg)
Do you have what it takes?
• These are unpaid positions in the Mobile Lab, but it's a great opportunity to earn experience!
• I will not be interviewing anyone in this class
• Feel free to send me your resume and ask me for advice on how it can be improved and tailored for The Mobile Lab