[GUIDE] How To Make An Android App

Search This thread

mg2195

Senior Member
Dec 5, 2011
2,983
2,572
29
RSM
Very cool...can't wait to get started...I've been wanting to build apps for a while now...but haven't really found a good guide...this one looks very promising :D

Sent from my HTC PH39100 using Tapatalk 2
 
  • Like
Reactions: kundan.lohar

azoller1

Senior Member
Aug 4, 2011
1,928
1,807
My Room
OnePlus 8T
I think this will be an excellent start for people wanting to learn android development like me! But now I gotta learn java somewhere....

Sent from my VS920 4G using Tapatalk 2
 

Nachiket.Namjoshi

Senior Member
Aug 16, 2012
710
2,054
◄♪♫██ ♪♫►
I think this will be an excellent start for people wanting to learn android development like me! But now I gotta learn java somewhere....

Sent from my VS920 4G using Tapatalk 2

Hehe... just learn the basics bro... .

i was going to post the guide to java too... but it would take like 30 more "reserved" posts.. and the mods would have sued me... lol. xD :p

Sent from my GT-S5360 using xda app-developers app
 

mni ANKIT

Senior Member
Nov 13, 2012
82
11
Nagpur
nice work i too learned how to use sdk's to make an app,, but yet to learn java,xml,,,and so on... made the simple hello app with/without button....by reading post by AdamOutler sir..I am too from nagpur ,,where u liv exactly...If you know more about android/ development/ stuff please guide me.. Thnx in advance...:good:
 
  • Like
Reactions: Nachiket.Namjoshi

Nachiket.Namjoshi

Senior Member
Aug 16, 2012
710
2,054
◄♪♫██ ♪♫►
nice work i too learned how to use sdk's to make an app,, but yet to learn java,xml,,,and so on... made the simple hello app with/without button....by reading post by AdamOutler sir..I am too from nagpur ,,where u liv exactly...If you know more about android/ development/ stuff please guide me.. Thnx in advance...:good:

Check pm bro... :)

Sent from my GT-S5360 using xda app-developers app
 

Lumpie

Senior Member
Mar 6, 2012
54
12
Hey, I really appreciate your work and please dont get me wrong. I have serious Problems in following your tutorial because many steps are missing or the "buttons" have different names. Also your links and your explanation of getting the whole programmtools is outdatet because in the adt-bundle-windows-x86_64 there is everything you need without this installation of the adt and so on. The get the virtual device i couldnt manage it with your tutorial i googled it and then i managed it to follow. I am absolutly not flaming! please dont get me wrong. But for an beginner like me its hard to figure out what steps you are doing when some steps are missing or different named then in the programms. But its a really nice thing what you have done and a start in a flood of informations :D.
 

Nachiket.Namjoshi

Senior Member
Aug 16, 2012
710
2,054
◄♪♫██ ♪♫►
Hey, I really appreciate your work and please dont get me wrong. I have serious Problems in following your tutorial because many steps are missing or the "buttons" have different names. Also your links and your explanation of getting the whole programmtools is outdatet because in the adt-bundle-windows-x86_64 there is everything you need without this installation of the adt and so on. The get the virtual device i couldnt manage it with your tutorial i googled it and then i managed it to follow. I am absolutly not flaming! please dont get me wrong. But for an beginner like me its hard to figure out what steps you are doing when some steps are missing or different named then in the programms. But its a really nice thing what you have done and a start in a flood of informations :D.

Kay bro... will refine it as soon as I get a PC.. my dad took the power cord of the computer... -_-

Sent from my GT-S5360 using xda app-developers app
 

Top Liked Posts

  • There are no posts matching your filters.
  • 176
    Introduction

    Hello and Welcome to android app development guide. In this [guide] i will teachyou how to develop applications for the android platform using java and some simple tools. I will also teach you to add audio/video to your apps and also teach how to make them location aware by adding gps function to it :) :D :D

    What You Should Know

    Here I am just letting you all Know the pre-requisites of making an app. But then if you dont match the pre-requisites..... its OKAY !! I started it without this xD


    • Some Experience Of Object Oriented Programming
    • Some Experience of JAVA
    • Experience of Using ECLIPSE
    • Have An ANDROID phone so that you know the capabilities of Android


    73
    Activities And Explicit Intents

    Activities & Explicit Intents

    As I've already told you that Activities are one of the primary building blocks of your app. here, we will learn how to create actiities, declare them in AndroidManifest.xml and We will also learn How to go to another activity from one activity. Okay. So now open up Eclipse. and sart a new Android Project.

    • Click on File >> New >> Android Project
      LFZaf5w.png


    • Fill in the details as you wish.... and click finish. :)
      5xqJl84.png

    • After you make a Project. You will get A full working Hello world Application. now, modify the MainActivity.xml in the graphical part like this
      oQMSpKf.png

    • make a new xml file by clicking
      z6nUn8C.png
      . Give a file name like... SecondActivity.xml or something you like Note: This Will be your Second Activity. and now click Finish
    • Now drag the " TextView " from the " form widgets" tab from the left side panel to the graphical editor of your second activity.

    Now, Basically what i want to teach is Explicit Intents. Now what we want our app to do is the text written in the MainActivity should be shown to the user when he clicks the "go to second activity" button. So to do this, we need to declare and do something with JAVA !


    • navigate to the .java files -->

      quGL9ze.png

    • Double click the java file and you will et something like this ( gibberish... if you dont like java like me :p )
      vUirRq7.png

      hduDb3O.png


      since we need to define the "EditText" field and the "Button" from the first activity !

      Now, find this

      Code:
      setContentView(R.layout.main);


      after that start typing

      final EditText et = findView

      now press ctrl+space (windows)
      it will show you a list of commands. choose findViewById(id)
      now it will automatically place you along the (id). now start typing ---> R.id.
      and press ctrl+space (windows).
      chose the EditText Value..... Now as you see, it will show an error there. press ctrl+1 to show quick fixes. Add a cast to EditText. Final text will be Like this

      Code:
      final EditText et = (EditText) findViewById(R.id.editText1);


      Now do the same with the "Button"


      Code:
      Button b = (Button) findViewById(R.id.button1);

      Now that you have defined the button. Now you will have to set an OnClickListener for that button. so the it allows User to go to the second activity.

      now start typing

      b.setOnclick... press ctrl+space and choose onClickListener. It will automatically place you in the "()" type there --> new OnClickListener press ctrl+space. you will get something like this

      fTtEQFN.png


      you will get an error. so go to the place ( marked red in the pic and put a semi-colon )

      now, in the following method,

      Code:
      public void onClick(View arg0) {
      				// TODO Auto-generated method stub
      				
      				
      			}

      start typing the following

      Code:
      Intent intent = newInt

      press ctrl+space and choose this


      kl6CA4N.png


      It will automatically place you in packageContext.

      NOTE:

      packageContext == "The java file that is creating the Intent";
      cls == " The java file to whom the Intent Should be passed";



      so, edit it this way

      Code:
      Intent intent = new Intent(MainActivity.this, SecondActivity.class);

      NOTE:

      MainActivity == "The java file that you are editing";
      SecondActivity == " The java file That WILL represent the the SecondActivity.xml";



      It will give you an error. press ctrl+1 and select--> create class "SecondActivity"
      Fill in the details of the new java file and click finish. Now go back to previous java file.

      Now, you have created an intent. But its not defined that what will that intent do !
      So, now, Lets define that ;)

      start typing--> intent.putExtra and press ctrl+space. choose this.

      Q11uLpc.png


      now, you will be automatically placed in the "key". now for the key, you will have to type a string. i would like to call it "thetext". Now, Make sure you type the string WITHIN THE DOUBLE QUOTES..

      For the value, you will have to give the reference of the "EditText" Field. here, i have given it as "et", i will type it this way.

      intent.putExtra("thetext", et.getText().toString());

      Now, you have successfully DEFINED what the intent does. but if you check the coding..... you will notice that the intent is never initialised ! now, to initialise it, type in this -->
      startActivity(intent);
    the final MainActivity.java should look like this.

    TIJRky9.png





    Now, its almost done..... BUT.... ! what the hell is the use of the secondActivity.java o_O ! ?
    It is to be edited. only then the text written in the first activity by the user will be shown in the second activity. to do that, go to second activity. Now,



    EASY PART

    • Find this in the first java file:
      vUirRq7.png

      hduDb3O.png
    • Copy all that stuff to the SecondActivity.java
    • Change the blue highlited text ( in eclipse ) to the name of the second xml file. (just dont add the extension)


    Hard PART

    Now, you gotta define the "TextView" on the SecondActivity.xml Since you have given the reference to the SecondActivity.xml by copying all that stuff.

    so, start typing,

    Code:
    TextView tv = findView


    NOTE: Here "tv" is the name you have assigned to the "TextView". You can change it if you want. BUT makesure you do the cahnges accordingly in the next steps.

    hit ctrl + space. choose >> findViewById(id);

    now again, as we already did that before, in the place of "id" just type in "R.id." hit ctrl+space and chose the "TextView"

    Now, that You have defined it here, dosent mean that It will give you desired output....
    You just have created an intent and have defined it and initialised it in the last java file.
    But there is no-one to recieve that intent ! so, start typing the following:

    JURMrFy.png


    And, in place of text, start typing "getI" and press ctrl+space. put a fullstop, type "getE" hit ctrl+space, put a fullstop again, start typing "getS", ctrl+space again now in the "()" put the string that you have defined in the last java file. since I have defined it as "thetext" i will type that in the "()" like this:

    Code:
    tv.setText(getIntent().getExtras().getString("thetext"));



    Now, its done..... BUT.... ! .... AndroidManifest.xml
    you didnt touch it till now. we have to register every activity there. or else, the app will cause a FC error. (Force Closes)


    Now, open up the Androidmanifest.xml

    UMHSKeK.png


    go to the text editor :

    IbktDuE.png



    and in the end before--> "</application>" add this
    Code:
    <activity
                android:name="com.blksyn.explicitintents.SecondActivity">
    </activity>




    Now, its done. Lets start the emulator and Check this if it works !

    • Go to AVD Manager like this:
      D8aW8RF.png
    • Start the AVD emulator.
    • click on run: and click on run again xD. Click on okay.
      eNiT4s1.png

    Bingo ! you have created an app which declares Explicit Intents and added a function to activities to catch that intent !

    CavNt7h.png
    kLQfPLv.png





    72
    Overview

    Android Architecture


    • Runs on Linux 2.6
    • Dalvik Virtual Machine, Which Is optimised for mobiles
    • Integrated Browser, based On Webkit Engine
    • Optimized Graphics with Open GL ES
    • SQLite Database for Data storage
    Android Application Fundamentals

    • Applications are written in JAVA programming Language
    • Compiled Into Android Package file (.apk)
    • Each Application runs in its own sandbox and linux processes
    • Applications consists of Components, Resources and a Manifest file
    Components:

    • Activities
      • Single Screen with a UI [a screen seen by a user, it is an activity. basically a single screen, seen by the user IS an ACTIVITY ]
      • Multiple Activities are required to make a user friendly application ;)
      • When a new activity starts, old activity is pushed on to the Back Stack [ it becomes handy and fast if you press the back button on the phone. the activity on the back stack is not needed to be loaded again ! ]
      • UI can be built with either by XML ( recommended) or in Java ( I hate doing that :p )
      • You can manipulate the lifetime of the activities by certain call back methods. such as onStart[], onPause[], etc.
    • Services

      • They perform long-running operations in the background.
      • Doesn't contain ANY user interface
      • Useful for network operations, playing music, etc.
      • Runs independently of the component that created it ! --> [ say a service that launches a Service is closed. the service is still running ]
      • They can be bound to other application components. [ IF allowed ]
    • Content Providers
      • Used to store and retrieve data and make it accessible to any application.
      • Since, there is no way to share data across the applications, it is the only way !
      • Exposes a public URI that identifies the data set with some unique method or codes.
      • The data is exposed by a simple table on a database model concept.
      • Android contains many providers for things like contacts, media, etc.
    • Broadcast Recievers
      • A component that responds to system-wide broadcast announcement.
      • For Example, if the battery is low, Android Sends a system-wide broadcast, and the application that is listening to it, is responded by a Broadcast Reciever.
      • Applications can also initiate a broadcast that different applications can respond to ! example --> if an application, app1, is dependent on another application, app2, it can start a broadcast for app2. if the app2 exists, it can proceed else it will pop up a message like --- "app2 doesn't exist. plz download it from the market"
      • They, like services, contain no UI
      • Can be used to create Status Bar Notifications
    • Android Manifest File
      • All applications MUST have an AndroidManifest.xml in its root directory.
      • Presents the information about the application to the Android System.
      • Declares the Components used in the application
      • Also Declares the permissions required from the user to run the application.
      • Declares the Minimum Android API level to run that application. [ eg: GingerBread, HoneyComb, IceCreamSandwich, etc. ]



    Details About Some Folders
    Have You ever Decompiled any apk file ?? If not, do it, cuz it is really important part of app making. since there are many relative things to this.
    In here I will
    Explain about some folders you get to see in a folder named "res" when you decompile.

    • layout
      In This Folder, You will find some xmls, which looks more like a web page source :p
      And Gibberish until you take a CLOSE LOOK !
      It actually stores in the Layout of your activity. You will get to be familiar with this as we are going to use this :D
    • drawable
      In this folder, You will get the things that makes the app look beautiful !
      Ha! This contains "pngs" that are used in themes. We Will come to this as time passes
    • xml
      In here, Again, XMLs with someting Gibberish till you get a closer Look ! These xmls store your preference activities.
    • anim
      This folder, again xmls, which seem more unreadable. This folder, as the name says, it stores the anim files that has instructions for your animations that you (will) use in the app.
    • values
      This folder, again xmls, which seem even more unreadable. This folder, stores the values for different stuff, like ids, integers color hex's, etc (we will get to this later) .
    • colors
      This folder, again xmls, as the name says, stores the colors that you (will be) using in the app (we will get to this later) .
    63
    Implicit Intents

    Implicit Intents


    Now, you must have seen some applications with a "share" button. By clicking on this button, you can share a particular image/video/audio/etc....
    What does that application actually do is send a message to other applications to search for the applications capable of handling such type of job. Then it pops up the list of such apps to the user. Now we can also have that list contain our app too !
    Here is how.





    • Create a blank project. I gave it the name as "Implicit_intents". But you can choose whatever you want :)
    • Open up the "AndroidManifest.xml" file. (plz dont expect me to show how, cuz i have already shown that earlier and you should know that by now)
      You will see something like this

      001.PNG

    • Copy this from the main activity
      Code:
      	<intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
          	</intent-filter>

      paste it again after the </intent-filter>
      and change it to this

      Code:
      	<intent-filter>
                      <action android:name="android.intent.action.SEND" />
                      <category android:name="android.intent.category.DEFAULT" />
                      <data android:mimeType="image/*" />
          	</intent-filter>


      NOTE:
      Code:
      		<action android:name="android.intent.action.SEND" />

      (self explainatory)
      Code:
       <category android:name="android.intent.category.DEFAULT" />

      This tells the android system waht the category of the intent is. If you dont know what the category really is, you should keep it DEAFAULT.
      Code:
       <data android:mimeType="image/*" />

      This tells the Android system, What type of data can the application "SEND" (* reference to the first one). and "data/*" means that the application can handle any type of imge. Jpeg, png, bmp, etc....

    So, this is how your AndroidManifest.xml should look like.

    002.PNG



    • Now, go to the xml of your main activity and get rid of that text view. and add an "ImageView" from "Images and media" tab on the left


      003.PNG
    • Now, go to your main java file and give a refernece to that ImageView


      004.PNG


      NOTE: "iv" is just a name given to the ImageView. so, you can change it if you want. But you will have to adapt to it and make changes in the steps accordingly.

      Import the image view thing and add a cast by hitting ctrl+space
    • Now that you have specified the ImageView, you now have to set the ImageView to show the image the user wanna send. so, start typing in "iv.setImage" and press ctrl+space.

      005.png


      Now, since the image is IN the intent sent by the gallery after the user clicks the share button, we have to "get" the "EXTRAS" from the intent. So, start typing in in the "()". "getInt" press ctrl+space put a "." again type "getExt" choose the only option available, put a "." again and type "get" choose the first option. now, for the key, we are gonna use a constant from the INTENT class, that is called "EXTRA_STREAM". So ,just start typing in "Intent", put a ".", type "extra_" and choose "EXTRA_STREAM".


      This "EXTRA_STREAM" is nothing but the "URI" to the image the user wants to send. You will have an error now in the line even after putting a ";" in the end. so press the quick fix combo "ctrl+1" and add a cast to (URI).

      006.PNG



    Now, you have successfully built an application that can handle the "share" kind of intent. now if you run this app in the emulator, you will probably have an FC. Since the app does not have any intent to process during the launch, it will FC. but if you go to gallery and click on share, you will get this app in the list. And also, if you click on this app, you will see the image you wanted to share.


    So, this ends our chapter of Implicit Intents. You can now use your imaginations and use the combos of the previous and this chapter to build a pretty good basic app ! and the credit will be yours ! But dont forget to thank me for my efforts. haha... and also if i help you in some place.

    And last but not the least in this chapter, If you have any questions, post a reply in this thread :) you will surely be answered :D :D :good: