You are on page 1of 28

INDORE INSTITUTE OF SCIENCE & TECHNOLOGY INDORE

AN INDUSTRIAL TRAINING REPORT ON ANDROID PROGRAMMING


Submitted to Rajiv Gandhi Proudyogiki Vishvavidhyalaya,Bhopal As an industrial training report for the partial fulfillment of the award of degree of

BACHELOR OF ENGINEERING IN COMPUTER SCIENCE AND ENGINEERING

Submitted To: Ms. Lakshmi

Submitted By: Harpreet Singh Khanduja

Department of Computer Science and Engineering INDORE INSTITUTE OF SCIENCE & TECHNOLOGY, INDORE Opp. IIM, Rao, Pithampur Road,Indore- 453331

INDORE INSTITUTE OF SCIENCE & TECHNOLOGY INDORE (M.P.) CERTIFICATE

This is to certify that the Industrial Training report entitled Android Development, submitted by Harpreet Singh Khanduja, student of final year towards partial fulfillment of the degree of Bachelor of Engineering in Computer Science and Engineering in year 2009-2010 from Indore Institute of Science & Technology, Indore (M.P.) in partial fulfillment of the requirement for the award of the degree of Bachelor of Engineering is a bonafide record of the work carried by, during the academic semester seventh.

INDORE Date: 21 Oct 2011

INTERNAL EXAMINER

EXTERNAL EXAMINER

PRINCIPAL

INDORE INSTITUTE OF SCIENCE & TECHNOLOGY INDORE

RECOMMENDATION

The work entitled Android Development, submitted by Harpreet Singh, student of final year Computer Science and Engineering Department, towards the partial fulfillment for the award of degree of Bachelor of Engineering in Computer Science and Engineering of Rajiv Gandhi Proudyogiki Vishvavidhyalaya,Bhopal(M.P.) is a satisfactory account of their Industrial training and is recommended for the award of the degree.

Endorsed By: Mr. Viresh Jharbare (HOD)

INDORE INSTITUTE OF SCIENCE & TECHNOLOGY

ACKNOWLEDGEMENT

The successful completion of any work is generally not an individual effort. It is an outcome of dedicated and cumulative efforts of a number of person, each having its own importance to the objective. This section is a value of thanks and gratitude towards all those persons who have implicitly or explicitly contributed in their own unique way towards the completion of the project. For their invaluable comments and suggestions, we wish to thank them all. Positive inspiration and right guidance are must in every aspect of life. Especially, when we arrive at academic stage for instance. For the success of our project a number of obligations have been taken. We have performed solemn duty of expressing a heartfelt thanks to all who have endowed us with their precious perpetual guidance, suggestions and information. Any kind of help directly or indirectly has proved importance to us.

CONTENTS
Chapter 1: INTRODUCTION..1-3 1. Introduction to Training 2. Background of the company 2.2.1Main activities/business organization 2.2.2Organization details Chapter 2: The PROJECT.4-7 2.1 Project definition 2.1.1 Objective 2.1.2 Project scope Chapter 3: REQUIREMENTS ANALYSIS9-16 3.1 Functional Requirements 3.2 Non Functional Requirements 3.3 Use-Case specification 3.3.1 Find actors 3.3.2 Documents actors 3.3.3 Find Use Cases 3.3.4 Use Case Diagrams Chapter 4: DESIGN...17-27 4.1 Database Design 4.1.1 ER Diagram 4.2.2 Design Tables and Normalization 4.2 Class diagrams 4.3 Activity diagrams 4.4 Sequence diagrams Chapter 5: EXPERIMENT AND TESTING.28-33 5.1 Test cases developed 5.2 Testing used in our project Chapter 6: DAILY DAIRY...33-35 Chapter 7: CONCLUSION...36-37 7.1 Problems and Issues in currents system 7.2 Future extension BIBLIOGRAPHY AND REFERENCE

Chapter 1 INTRODUCTION
1. Introduction to Training The process of increasing the knowledge and skills of the workforce to enable them to perform their jobs effectively. Training is, therefore, a process whereby an individual acquires job-related skills and knowledge. Training costs can be significant in any business. However, many employers are prepared to incur these costs because they expect their business to benefit from employees' development and progress. My training was in Android Programming field.
Introduction to programming for the Android platform course is designed to quickly get you up to speed with writing apps for Android devices. We will learn the basics of Android platform. We will get to understand the application lifecycle. By the end of the course, we will be able to write simple GUI applications, use built-in widgets and components, work with the database to store data locally, and much more. This is a perfect course to get started with Android programming.

2. Background of the company 2.2.1 Main activities/business organization Info Centroid Software Solutions provides focused training on wide range of training programs on Java and related technologies. Starting from the fundamentals to the most advanced technologies with a greater focus on quality training, with the most experienced trainers and the most effective training methodologies. Info Centroid Solutions has created and worked on most of the new media, technology dynamics to create the best and most widely used solutions for your organization. Info Centroid Solutions focuses on creating custom Website Designing, Website Hosting Services, Website Maintenance and Support services, Content Management Systems and other web based solutions through its expertise in the field and a talented pool of resources. Our emphasis on the user interface designs sets us apart from merely being a web design company. We believe that creativity and usability are the two vital aspects of any online entity. Our company offers our clients with business-centric set of web design. We believe that creativity and usability are the two vital aspects of any online entity. Our company offers our clients with business-centric set of web design. Info Centroid solutions is a leading training centre, building a skilled manpower pool for global industry requirements. We are constantly looking for quality training organizations in all areas, across a broad range of industries. We consistently look for the new Technologies emerging in the IT field and guide our students in the same path. We were successful by making the student not only imparting Technical knowledge, but also with other skills like Communication, Aptitude, personality, development etc., All the Technologies may not suit all the candidates, Info Centroid team analyses the candidate skills and guide them to take the Program which is more relevant to them, unless otherwise the candidate opt to study a

particular Technology. We also giving value added services to Colleges & Corporate. Info Centroid Solutions is a place where you are free to explore and are encouraged to voice new ideas and inspires you to surpass, innovate and lead. And you will always find yourself involved in strategy planning.

1.2.2 Organization details Info Centroid Software Solutions Pvt. Ltd. is an Indian curriculum based software company which offers Website Application & Solutions, Website Design, Website Development, E-Commerce Solutions , Dynamic websites, Static Websites , Health Care Software Development, Windows Application ,ERP Based softwares We have recent and significant experience in building Web 2.0 Solutions and Real Estate ERP. We also offer the training in different software technologies. Info Centroid Software Solutions Pvt. Ltd. is a india based software firm, eleborated into three division. First division is Info Centroid Technologies, second is Info Centroid Solutions and third is Info Centroid RPO. Info Centroid Solutions founded as a leading training company provides, Industrial Training, Corporate Training, Major Project Training and Special Training On particular domains with live project of company. Info Centroid Technologies founded in 2008 as a small company with a big vision. Achieved total financial stability since inception and grown solely based on internally generated funds. Info Centroid founded RPO, manage the entire recruiting/hiring process from job profiling through the on boarding of the new hire, including staff, technology, method and reporting.

Chapter 2 The PROJECT


2.1 Project definition 2.1.1 Objective In an ideal world, every organization should start their social media efforts by listening on the social web, finding out where their stakeholders are, then analyzing what value could be derived from embarking upon building an official presence in those particular social spaces so they can begin to participate strategically in those conversations. But every once in a while, there's an opportunity to act fast, to try an experiment with a particular tool. We're working with one group who had exactly this scenario - a fairly big event coming up quickly, and members asking about their social media presence, and they figured they should just jump in and set up an official Twitter account to see what would happen. We held a brainstorming session with a large group of staff from all different departments and they came up with a nice list of objectives which I thought I'd share. In no particular order: - to keep up with things happening around exhibits, and communicate with exhibitors - to be the cool kid - to experiment with a different kind of communication - to find out who uses Twitter within their community - to see if members are interested in using this forum - if it works for meetings/events, could it be used for other activities? - to hear buzz from the community - to respond to their members (customer service) - to reach potential donors, learn things about them that you wouldn't know from anywhere else - to explore a new way of communicating (two-way) - to communicate more concisely, faster, more easily - to facilitate interaction with members who couldn't attend in person - to communicate event-specific announcements very easily, as soon as they come up and repeatedly - to find out what members are particularly interested in (via links shared) - to drive/listen to conversation about specific topics - to promote/reward members e.g. contest winners - to have some fun - to give staff a voice, allow people to get to know them - to help exhibitors promote themselves - to extend the life and space of the event.

2.1.2 Project scope Twitter has been used for a variety of purposes in many different industries and scenarios. For example, it has been used to organize protests, sometimes referred to as "Twitter Revolutions" and which include the 2011 Egyptian revolution, 2010-11 Tunisian protests of Iran and Egypt blocked the service in retaliation. The service is also used as a form of civil disobedience: in 2010, users expressed outrage over the Twitter joke Trial by making obvious jokes about terrorism; and in the British privacy injunction debate in the same country a year later, where several celebrities that had taken out anonymized injunctions, most notably the Manchester United player Ryan Giggs, were identified by thousands of users in protest to traditional journalism being censored. Twitter is also increasingly used for making TV more interactive and social. This effect is sometimes referred to as the "virtual water cooler" or social television. Twitter has been used successfully to encourage people to watch live TV events, such as the Oscars, the Super Bowl and this strategy has however proven less effective with regularly scheduled TV shows. Such direct cross-promotions have been banned from French television due to regulations against secret advertising. In May 2008, The Wall Street Journal wrote that social networking services such as Twitter "elicit mixed feelings in the technology-savvy people who have been their early adopters. Fans say they are a good way to keep in touch with busy friends. But some users are starting to feel 'too' connected, as they grapple with check-in messages at odd hours, higher cell phone bills and the need to tell acquaintances to stop announcing what they're having for dinner." Tech writer Bruce Sterling pined in 2007 that using Twitter for "literate communication" is "about as likely as firing up a CB radio and hearing some guy recite the Iliad. In September 2008, the journalist Clive Thomson mused in a The New York Times Magzine editorial that the service had expanded narcissism into "a new, super metabolic extremethe ultimate expression of a generation of celebrity-addled youths who believe their every utterance is fascinating and ought to be shared with the world." Conversely, Vancouver Son columnist Steve Dutto opined that part of Twitter's appeal is the challenge of trying to publish such messages in tight constraints, and Jonathan professor of Internet law at Harward Law School, said that "the qualities that make Twitter seem inane and half-baked are what makes it so powerful".

Chapter 3 REQUIREMENTS ANALYSIS


3.1 Functional Requirements

1. User can sign up with Twitter from the client 2. User can log into Twitter (sign in) from the client 3. Twitter home page will be displayed on the client after logging in. The home page will have the tweets and facility to select (1) post a tweet, (2) view mentions (3) view inbox and (4) reload. 4. User can post his tweet into Twitter from the client 5. User can view followers and also the people who are following him. 6. User can search for people by name or user name. 7. Register user. 8. Subscribe to searches. 9. Enter search information. 10. Receive new updates by e-mail. 11. Modify submitted searches. 12. Unsubscribe to previous submitted searches. The e-mails with new updates will be sent at frequency determined by the user. 13. Only registered users can access the web service this way user's information is secured. 14. Using controlled access the users information will be secured; and we can detect any misuse to our servers. 15. Will not use information about users for marketing purposes. 16. The service must be available any time. 17. Must secure users login information.

3.2 Non-functional Requirements Non-functional requirements always seem to be under-emphasized when writing requirements. The Twitter fail whale has become famous, because twitter could not scale to meet the demands of a rapidly growing user base. Maybe the Twitter team planned for scalability, but demand simply outstripped it. Or maybe they failed to plan for it. Either way, they failed to meet the non-functional requirements of supporting the growth that they did have. (Un)Luckily, this type of problem self-corrects. Scaling failures drive away users, reducing the need to scale, until balance is achieved. Product managers and business analysts tend to neglect non-functional requirements. Unfortunately, this is especially true when managing with a focus on users and their goals. Not because goals dont drive non-functional requirements they do. I believe this has happened because historically, non-functional requirements were treated as an after-thought. In reality, they are explicitly driven by goals. I proposed an equal rights amendment to the structured requirements domain model almost three years ago. In short, it explicitly calls out the relationship between goals and non-functional requirements.

Getting non-functional requirements into your sprint planning is actually not that hard. You only have to make two tiny adjustments to get from the waterfall world to the agile world. The first adjustment is that you have to treat non-functional requirements incrementally. Non-functional requirements often affect all of the other requirements so they seem massive and un wieldy. You have to decompose them. Consider the platformcompatibility requirements for a web application. You may have to support IE6,7,8; Safari on Windows, Safari on OS X, and Firefox on Windows XP and Vista. That could be incredibly daunting. So break it down. Your first group of users ( key persona ) are primarily Firefox/XP users. So the first platform you support is that one. The next big platform for your persona group is Safari on OS X. Add support for that next without breaking the previous support for FF/XP. With each release, you add a platform (or two, or none). You are conspicuously addressing the needs of your target users. The key is that once support is added for a platform, all future development is required to not break it. Each non-functional requirement is cumulative. This is the second adjustment. All development, once a non-functional requirement is in place, must continue to honor it. You wouldnt break a previously released capability (functional requirement), so dont break a nonfunctional requirement. You have to determine, in each sprint, if additional functionality is more important than additional platform support. And add in the platforms as they become the most important next things to do. In waterfall projects, Ive seen many teams break and re-break platform support throughout the development process, with the knowledge that it only has to work at the end. Include platform-specific support in your tests. You have a launch event coming up in six weeks. You have an established user base. Youre also developing a key new set of capabilities for your product that you believe will be a big hit and drive significant growth for your product. You have a small group of people in a private beta, providing you with feedback about the new development. If you believe the launch will cause your customer base to double very quickly (maybe over a month), how do you plan for that? This is a serious scalability non-functional requirement. Break the non-functional requirement up into cumulative requirements. Assuming your plan is to add 10,000 users at once have your implementation team brainstorm what that could/would mean for the system. [Also, make sure you coordinate with your community manager and marketing folks, both to validate the anticipated growth, and to device any contingency strategies in advance. After talking with your development team, perhaps you learn that at once is a nuanced proposition. Literally at once is very bad. Spread out over a few days, not so bad. OK you can deal with this too.

3.3 Use-Case specification 3.3.1 Find actors At times, gathering requirements can be tedious, difficult, and not much fun. Not nearly as fun as using stick figures and shapes to tell a story. Giving in to creativity like this is so appealing that my three-year-old daughter does it without prompting. She just likes to draw pictures that tell stories. So do I. Thus, I remain convinced that the allure of use cases is rooted in the idea that requirements can now be specified by simply drawing shapes and arrows on a diagram. Gone are the days of laboring through the process of gathering and managing countless requirements spread throughout different documents. It seems too good to be true. Because it is and reality, those details will still exist in the information behind the simple figures on your diagram. But if all that detail is still there, why bother with the diagrams? Well, let's talk about what a use case diagram is and what role it plays in specifying requirements.

3.3.2 Document actors Use case diagrams have just three things on them:

Actors Use cases Relationships

That's it. The stick figures symbolize actors - the roles played by users of the system. The ovals symbolize use cases - the things actors accomplish with the system. The lines show how actors and use cases are related. The most important word in the previous paragraph is symbolize. On the diagram, those ovals aren't actually use cases. Each oval is an indicator that a use case exists - the detail that describes the use case is still there, written in textual form and somehow linked to that oval. The link might be supported by a tool - or it might exist only in your mind. At the risk of insulting use case experts - I want to clear up a common misconception among people new to use cases. A use case diagram is NOT like a flow chart. The diagram is not meant to show the sequence of steps an actor takes when using the system.

3.3.4 Use Case Diagram

Chapter 4 DESIGN
4.1 Database Design 4.1.1 E-R Diagram

4.2.2 Design Tables and Normalization

First normal form

Second Normal form

Third Normal Form

Fourth Normal Form

4.2 Class diagram

4.3 Activity Diagram

4.4 Sequence diagrams

Chapter 5 EXPERIMENT AND TESTING


5.1 Test cases developed The testing framework has these key features:

Android test suites are based on J Unit. You can use plain J Unit to test a class that doesn't call the Android API, or Android's J Unit extensions to test Android components. If you're new to Android testing, you can start with general-purpose test case classes such as Android Test Case and then go on to use more sophisticated classes. The Android J Unit extensions provide component-specific test case classes. These classes provide helper methods for creating mock objects and methods that help you control the lifecycle of a component. Test suites are contained in test packages that are similar to main application packages, so you don't need to learn a new set of tools or techniques for designing and building tests. The SDK tools for building and tests are available in Eclipse with ADT, and also in command-line form for use with other IDES. These tools get information from the project of the application under test and use this information to automatically create the build files, manifest file, and directory structure for the test package. The SDK also provides monkey runner, an API testing devices with Python programs, and Application exerciser monkey, a command-line tool for stresstesting UIs by sending pseudo-random events to a device.

5.2 Testing used in our project

Chapter 7 CONCLUSION
7.1 Problems and Issues in currents system

Problems with following: Folks are seeing erroneous messages about being over the follow limit. Also some changes with following seem not to apply right away or to stall out. Missing updates: Some users are seeing missing updates from their timelines because of replication issues. But these updates are not lost theyre just not being displayed when they should. This is a critical problem and were working to improve database performance to address it. Photo uploading: Users are still running into some problems uploading JPGs for both avatars and background images.

7.2 Future extension Android is a truly open, free development platform based on Linux and open source. Handset makers can use and customize the platform without paying a royalty. A component-based architecture inspired by Internet mash-ups. Parts of one application can be used in another in ways not originally envisioned by the developer. can even replace built-in components with own improved versions. This will unleash a new round of creativity in the mobile space. Android is open to all: industry, developers and users Participating in many of the successful open source projects Aims to be as easy to build for as the web. Google Android is stepping into the next level of Mobile Internet

REFERENCE

1. White paper for A Spectrum White Paper: Thoughts on Google Android from Spectrum data Technology. http://www.spectrumdt.com 2. http://code.google.com/android/ - Google Android official webpage 3. http://www.openhandsetalliance.com/ - Open Handset Alliance webpage 4. http://en.wikipedia.org/wiki/Android_(mobile_phone_platform)Wikipedia information 5. http://googleblog.blogspot.com/ - Official Google Blog