Download Publishing your first application

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
IC03_ Native Android Application Design & Development
AF Unit 4. Publishing your first application
4.1. Hello World app
In this unit you will create your first application, the 'Hello World' app and then you will learn to
digitally sign it.
Start up Android Studio and click the first option from the Quick Start panel: 'Start a new Android
Studio project'
Notice that you might not have any items in the 'Recent Projects' panel so far.
IC03_Native Android Application Design and Development / Unit 4
1
The 'New Project' dialog will appear. Keep the default application name and type your
'Company/Center Domain' then hit the 'Next' button.
In the next dialog window, select the 'Minimum SDK'. For now, API 10 will do.
IC03_Native Android Application Design and Development / Unit 4
2
Notice the 'Help me choose' link!
By choosing API Level 10 or Android version 2.3 also known as Gingerbread (all Android
versions are named after sweet desserts) you would reach a potential 99.3% Android world
market.
Generally speaking, you should stick to the lowest possible Android version; the one that has
everything you need to develop your application.
TO KNOW MORE
Check this link to learn about the relative number of devices running a given version of the
Android platform.
Android Dashboard
IC03_Native Android Application Design and Development / Unit 4
3
In the next dialog window, choose a 'Blank Activity'. Activities are Android components that hold
widgets such as labels, text boxes, buttons and so on. Then hit the 'Next' button.
There are eleven initial activities to choose from. But for now, let's stick to the simplest one, the
'Blank Activity'.
TO KNOW MORE
There are mainly four components in an Android app:
1. Activities are application components that provide a screen. (Users can interact
with it in order to do something).
2. Services (an application component that can perform long-running operations in
the background and does not provide a user interface). As the service has no user
interface, it is not bound to the lifecycle of an activity, although they run in the
same process as the main thread or UI thread. Playing music or video are both
examples of services.
3. Content Providers (an application component that manages access to a structured
set of data). The Contacts application itself provides a content provider for other
applications to access our contact’s data.
4. BroadcastReceivers (an application component that monitors device state
changes). For example, you can register a receiver to have your application
notified if an incoming call or battery low event arises, to take some actions.
IC03_Native Android Application Design and Development / Unit 4
4
So, select the ‘Blank activity’ and click the Next button. Eventually, the following dialog window
will pop up.
Accept the default values for 'Activity Name', 'Layout Name', 'Title' and 'Menu Resource Name'.
Notice that only the ‘Title’ text box can contain spaces.
Finally hit the 'Finish' button to end the whole process.
After a few seconds, a ready-to-run app made up of one Activity with its corresponding layout
xml file is presented. Initially, the xml file will be displayed in the Design view but you can click
the 'Text' tab to see the XML code.
IC03_Native Android Application Design and Development / Unit 4
5
As you can see the so called 'BlankActivity' is not actually blank, it has an 'onCreate' method
that loads the 'activity_main.xml' file, which in turn has a label or 'TextView' that displays a
“Hello World” message. Besides, a basic menu is also provided with a single item.
Now press the play button (a green triangle icon, the 15th from the left) and choose the already
defined AVD to upload and display your app.
Notice that the first time you run your application, the AVD
will take quite a long time to load into memory. However,
successive executions won't take that much.
For this reason, you should take the time to install the Intel
Hardware Accelerator mentioned in a previous unit.
But if you really want to speed up the whole process, a real
device will dramatically plunge the upload time and
execution, hence decreasing the overall development time.
Furthermore, be aware that some crucial features just won't
work in a virtual device, such as Bluetooth, NFC or GPS.
And this is how it looks like in my Samsung Galaxy S 5.
The possibilities with a real smartphone are endless
ranging from GPS tracking to Bluetooth data transmission.
Just remember to choose the minimum Android version
accordingly to your model. As for the Samsung Galaxy S
5, any version up to Android 5 Lollipop would work.
IC03_Native Android Application Design and Development / Unit 4
6
Optionally, you can check how your brand new app looks like in different screen sizes.
Congrats!!! You have completed your first app.
Hello World Application step-by-step guide
Hello World Application step-by-step video
IC03_Native Android Application Design and Development / Unit 4
7
4.2. Signing your application
Now that you have completed your first app, it is time to digitally sign it in order to upload it to
Google Play.
First, you need to create your own digital certificate with a key and certification management
tool like 'keytool' which comes with the JDK.
You do not need Android Studio to sign your app.
You can sign your app from the command line using standard tools from the Android SDK and
the JDK.
To sign an app in release mode from the command line:
1. Generate a private key using keytool. For example:
keytool -genkey -v -keystore demo.keystore -alias pep -keyalg RSA -keysize 2048 -validity 10000
This example prompts you for passwords for the keystore and for the key, and also asks to
provide the Distinguished Name fields for your key. It then generates the keystore as a file
called my-release-key.keystore. The keystore contains a single key, valid for 10000 days. The
alias is a name that you will use later when signing your app.
2. Compile your app in release mode (access to Project Structure, app node, Build Types
tab then choose release mode) to obtain an unsigned APK.
3. Sign your app with your private key using jarsigner (also provided by JDK):
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore
my_application.apk alias_name
This example prompts you for passwords for the keystore and for the key. It then modifies the
APK in-place to sign it.
4. Verify that your APK is signed. For example:
jarsigner -verify -verbose -certs my_application.apk
5. Align the final APK package using zipalign.
zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
zipalign ensures that all uncompressed data starts with a particular byte alignment relative to
the start of the file, which reduces the amount of RAM consumed by an app.
As you can see there are quite a few steps. However, Android Studio, provides an easy way to
do it with just one click.
IC03_Native Android Application Design and Development / Unit 4
8
In any case, you will first need the private key store you created before.
Now open up the 'Project Structure' dialog window and type the following information.
Obviously, you will have to provide your own values for each text box.
CHECK IT OUT
The keytool command line tool has lots of commands and options
-certreq
-changealias
-delete
-exportcert
-genkeypair
-genseckey
-gencert
-importcert
-importpass
-importkeystore
-keypasswd
-list
-printcert
-printcertreq
-printcrl
-storepasswd
Generates a certificate request
Changes an entry's alias
Deletes an entry
Exports certificate
Generates a key pair
Generates a secret key
Generates certificate from a certificate request
Imports a certificate or a certificate chain
Imports a password
Imports one or all entries from another keystore
Changes the key password of an entry
Lists entries in a keystore
Prints the content of a certificate
Prints the content of a certificate request
Prints the content of a CRL file
Changes the store password of a keystore
Follow this link to review the whole process from a similar point of view.
Signing an Android application
IC03_Native Android Application Design and Development / Unit 4
9
And download the keytool guide.
Keytool guide
4.3. Uploading your application to Google Play
Uploading an application to Google Play is very easy. Just create a Google account if you do
not have one and then create a Google console account at:
https://play.google.com/apps/publish/
IC03_Native Android Application Design and Development / Unit 4
10
Then sign in and click the ‘Add new application’ blue button. Notice that I have already
published a couple of apps back in 2013.
As you can see, every row represents a published Android application ready to download. Each
one consisting of an icon, name and version number, price, current and total installs, average
rating (being 5 stars the top rating) and total rates, crashes and ANR’s (Application Not
Responding) error messages, last update and status.
IC03_Native Android Application Design and Development / Unit 4
11
After hitting the ‘Add new application’ blue button, the ‘ADD NEW APPLICATION’ dialog window
appears. Just write a title for your application and click the ‘Upload APK’ button then choose
your APK file under the build directory in your application project’s folder.
APK stands for Android Application Package and is the package file format used to distribute
and install application software and middleware onto Google’s Android operating system among
others operating systems.
IC03_Native Android Application Design and Development / Unit 4
12
You must also provide a short description, full description and two icons prior to publishing your
application, as well as screen captures and optionally a promotional video.
Although there are many app markets for distribution Google play is arguably the largest and
most visited store in the world for Android apps.
Applications not only need to be signed with a cryptographic key that expires after October 22,
2033, the maximum size for an APK published on Google Play is 50 MB.
TO KNOW MORE
Check this link to learn more about how to publish an Android APK.
How to publish an APK
IC03_Native Android Application Design and Development / Unit 4
13
Optionally, you can charge for each and every application download on a country-by-country
basis and select the countries your application is available for download.
IC03_Native Android Application Design and Development / Unit 4
14
Eventually, you might need to setup services such as Google Cloud Messaging (GCM), in-app
billing, Google play game services or app indexing from Google Search.
These are advanced features not covered in this unit.
IC03_Native Android Application Design and Development / Unit 4
15
Finally, you are more than welcome to visit my Google Play site and download any app you
want. Comments are also welcome.
IC03_Native Android Application Design and Development / Unit 4
16