Computing continues to become more “personal,” increasingly accessible anytime,
anywhere. At the forefront of this development are handheld devices that are
transforming into computing platforms. Mobile phones are no longer just for talking—
they have been capable of carrying data and video for some time. Significantly, the
mobile device is becoming so capable of general-purpose computing that it’s destined
to become the next PC (Personal Computer).
Augmented reality is relatively recent development in the field of mobile computing. Despite its
young age, it is already one of the fastest growing areas in this industry. Companies are investing
lots of money in developing products that use augmented reality, the most notable of which is
Google’s Project Glass. Most people perceive augmented reality as hard to implement. That’s a
misconception. Like with any good app, good augmented reality apps will take some amount of
effort to write. All you need to do is keep an open mind before diving in....
Over the last two years, Google’s Android operating system (OS) has gone from a virtually
unknown open source solution to the current mobile OS market leader among all mobile
handsets, with over one-third of the market share, and it’s still climbing rapidly. Android has even
started to dominate the tablet OS marketplace, and is also the foundation for the popular iTV OS
known as GoogleTV. There seems to be no end in sight for Android’s rocketing success, which is
great news for owners of this book....
Jayme Schroeder was introduced to computers at a very young age. By 11, he had started
creating modifications and level packs for his favorite game. By age 16, he had found his true passion in game development and network programming in C++ and OpenGL. In early 2011, Jayme had received an Android smartphone and immediately fell in love with the development experience. Since then, he has been researching and developing for the Android platform on a daily basis.
There is a revolution happening in the technology industry. Touchscreen interfaces,
combined with low-cost and ubiquitous smartphones, have created a perfect storm
for disruptive innovation. Android is at the forefront of this change, bringing a free
and open-source platform on which developers can create the next generation of
applications. With free development tools and an open market, anyone can develop
applications that reach a worldwide market. But why choose to develop for Android?
Thanks to mobile phones, we have moved from virtually no one having access to information
to virtually everyone having access to the vast resources of the Web. This is
arguably the most important achievement of our generation. Despite its overarching
importance, mobile computing is in its infancy. Technical, financial, and political forces
have created platform fragmentation like never before, and it’s going to get worse before
it gets better.
Shane Conder has extensive development experience and has focused his attention on mobile and embedded development for the past decade. He has designed and developed many commercial applications for BREW, J2ME, Palm, Windows Mobile, and Android--some of which have been installed on millions of phones worldwide. Shane has written extensively about the mobile industry and evaluated mobile development platforms on his tech blogs and is well known within the blogosphere. Shane received a B.S. in Computer Science from the University of California.
For me, this book has become all about change. In the time that I have been watching the mobile computing marketplace and developing software solutions for it, there has never been a time when there has been a more rapid series of shifts and changes. A good friend of mine tells me that this is because of market consolidation. As of the time of writing (August 2010), we’re looking at the time when the people who will be leaders in this space for the next 20 years jostle for position.
To begin, in this chapter I introduce you to the problem with decompilers and
why virtual machines and the Android platform in particular are at such risk. You
learn about the history of decompilers; it may surprise you that they’ve been
around almost as long as computers. And because this can be such an emotive
topic, I take some time to discuss the legal and moral issues behind
decompilation. Finally, you’re introduced to some of options open to you if you
want to protect your code.