Custom Search

Wednesday, September 16, 2009

Google Voice - A challenge to telecom companies???

Google Voice is all set to change the face of communication. This is a free service that uses VoIP calls to interconnect phone numbers.

Google Voice is a google's version of GrandCentral which was acquired by Google in 2007. “One phone number for all your phones, for life" is the basic idea behind GrandCentral. GrandCentral was launched in 2005 but once it was aquired by Google all its operations were suspended. It took a long time for google to relaunch it as Google Voice, ofcourse with a lot more features.

Google Voice was launched in March 2009, and as of now, its in the invite only mode and only introduced in USA. All the previous members of GrandCentral were given an account along with the users queued for Google Voice service.

Users of Google Voice are able to select a single phone number, from various area codes. When a Google Number is called, any phones set by the user will ring. The user can set a particular phone to ring based on the caller, time of the day etc. The user also has the option for voicemail, block calls, call forwarding etc.

Thursday, August 27, 2009

Microsoft's OneApp a challenge to Google Android ???

After google, now Microsoft also made it way into the mobile market. Microsoft launched its new program for mobiles "OneApp". Intrestingly this is also based on Java just like Android but more specifically for emerging markets. ie. for feature phones.

Android didnt make a huge impact on the market. Need to see if OneApp makes any impact on the mobile market.

The OneApp Development Kit expected to hit the market at the end of the year 2009. Taking a dig at the android market OneApp maintains that there is no need to search for new apps in the web and download them. OneApp maintains a client server architecture wherein there is no need to download or install instead there is constant interaction with the client handset and the OneApp server.

Monday, June 22, 2009

Understanding the sample hello world android app

Development Environment

The Android SDK supports several different development environments. I have experimented using Eclipse, so I will be talking about it in this blog. Also, it is very well integrated with the android SDK, and it’s free :-).




To start developing with Eclipse you will require these tools:




Sun’s Java Development Kit (JDK)


The Android SDK


Eclipse (I have been using Eclipse Ganymade)


A special Eclipse plug in: the Android Developer Tool (ADT)



Starting a New Android Application: HelloWorld
Several components are needed to build an Android application. Fortunately, the Eclipse IDE with the Android plug-in automates a lot of the work needed to create and maintain these components. We will start by using the IDE to create a project for our application. Start up Eclipse and select “File -> New -> Project…” from the menu bar (be sure to select “Project…,” not “Java Project”).

Select “Android Project” and click “Next” to get the “New Android Project” dialog box.
We’ll use “HelloWorld” as the name for both the Project and the Application. You don’t need to change the button or checkbox selections, and we’ll use the package name com.myapp.helloworld as shown.

Every Android application has to have at least one Activity (an executable that usually has a user interface), so let’s say we’re going to include an Activity called HelloWorldActivity, Click “Finish,” and the Android Development Kit does a number of things for you, to make your life easier as a developer. In the Package Explorer window you will see some of the files and directories that the ADK created.

The ADK created a HelloWorld directory in the default Eclipse workspace for your project. It also created subdirectories for your source files (.src), references to the Android Library, assets, resources (.res), and a manifest file (AndoidManifest.xml). In each of the subdirectories it created another level of subdirectories as appropriate. Let’s take a quick look at them:

Sources (under .src)

Contains a directory structure that corresponds to the package name you gave for your application: in this case, com.android.helloworld.

Contains a Java template for the Activity you indicated was in the application (HelloWorldActivity) and a directory of resource references (R.java).


Android Library
This is where your application will go for Android library references.


assets
Files you want to bundle with your application. We won’t have any for HelloWorld.

Resources (under .res)
Drawable resources are any images, bitmaps, etc. that you need for your application. For HelloWorld, the ADK has supplied us with the default Android icon, and that’s all we’ll need.

Layout resources tell Android how to arrange items on the screen when the application runs. These resources are XML files that give you quite a bit of freedom in laying out the screen for different purposes. For HelloWorld, we’ll just use the defaults generated by the ADK

Values are constants, strings, etc. available for use by your application. Keeping them outside the sources makes it easier to customize the application, such as adapting it for different languages.

Manifest (AndroidManifest.xml)
This is an XML file that tells the Android build system what it needs to know to build and package your application so it can be installed on an Android phone or the emulator. This file has its own specialized editor, which we’ll describe as we get to more complicated applications.
Double Click on HelloWorldActivity.java

Looking quickly at the template code that the ADK has provided for us, we can note several things:

The ADK has included the package reference we asked for, which is consistent with the directory structure it created.It has also created a (collapsed) set of imports for the library references it knows we need.It created a class definition for the Activity we said we wanted (HelloWorldActivity) including a method called OnCreate.

For the moment, don’t worry about the parameter passed into OnCreate. The Bundle is a way of passing data between activities and storing data between instantiations of the same Activity. We won’t need to use this for HelloWorld.

One special line of code has been included in OnCreate:setContentView (R.layout.main);
Remember that Android uses layouts to define screen layouts on the target, and that main.xml was the name of the default layout file that the ADK created for us under .res/layout. The R.java file is generated automatically and contains java references for each of the resources under .res. You will never need to edit the R.java file by hand— the ADK takes care of it as you add, change or delete resources.

Wednesday, April 1, 2009

Android Racing ahead





















HP is evaluating Google's open-source Android operating system for use in some its PCs and mobile devices. A spokesperson for HP said that the company is "studying the Android operating system". However, HP stressed that it remains open to considering various operating system options.



Asus, meanwhile, has already announced plans to port Android to its netbook range.





















Commenting on the reports, Google said that it designed Android to be open and scalable for precisely this type of application."Android is a free open-source mobile platform, so anyone can take the Android platform and add code or download it to create a mobile device without restrictions," said a Google spokesman.

LG Electronics has already announced its plans of going to equip two new smartphones with Android, following the footsteps of Samsung and Motorola.

Thursday, February 26, 2009

offline gmail

Google demonstrated how gmail can be accessed offline along with its features such as search etc enabled on an iphone. This doesnt require any iphone specific software to be installed. Instead it makes use of HTML to enable this features. This is how it has challenged Apple allowing iphone uses to make use of Google's features at no extra cost. If the same was enabled though a software then apple would have taken a roality for making the application available on its apple store, but this wont be the case.

However, this has not been released in the open market. Anyway, we can expect it to hit the market very soon. Google demonstated this feature recently on iphone and Android G1

Friday, February 20, 2009

paid apps on android market

Paid android apps are to be available in the android market very soon. Google has announced that android developers can now put a price tag on the applications that they develop and post the same in android market.

More android phones inline

It looks like more android phone will make it to the markets this year. LG and Huawei has already announced that they going to come up with their android phone. While LG is remodelling one of its old phones (middle range phone) on android platform Huawei is going to launch android with one of their phones which looks very similar to iphone. We can expect these phones to be launched on the 3rd quarter of 2009. The extensible platform android has also forced some companies to think of introducing android on low end notebooks.

Monday, February 2, 2009

Brew Mobile Platform (BMP) Vs Google Android

Qualcomm's brew mobile platform (BMP) the latest version of brew has a lot of modifications compared to its previous version. The changes seem to be mainly targeting the challenge given by android, the open source platform from google. Qualcomm is a member of the OHA, a partner in the development of Android as well.

Programming support:
BMP has some unique featues like it supports lua scripts, flash programming, trigML, lua and trigML debugging capabilities. The combination of such powerful programming languages in one platform is a boon the developer.

Android on the other hand is programmed in java. In java you have libraries for all functionalities which make programming easy. The wide range of tools available to the developer makes application development a piece of cake.

Platform structure:
Brew platform is open which allows a wide range of applications to be developed. Even though the platform is open, the source is still not open. A lot of code is made open to the OEM's and not to the developer. Android code is also not completely open as well but comparatively this is more open.

Application Market:
One of the biggest disadvantages or advantage in being a BREW developer is that for the developer to post any application in the server and to be downloaded by the user the process is very lengthy and expensive. With the introduction of BMP Qualcomm claims that the certification process is greatly simplified and takes less than 2 days. But yet for the application to be available to the user it needs to be uploaded by the operator/carrier. This process may take lot of time. The same in the case of android market is very simple. The developer just needs to upload it in the market and the user can directly download it from there. The only difference is that the applications can be bug prone and its not certified. You may not get tech support for these apps.

Overall Result:
This has resulted in the google market having many app and very popular whereas the brew application market is closed and completely controlled by Qualcomm though its certification process.

Since many parts of BMP is closed there is only one BMP phone that has come into the market whereas it is now crowded with android phones everywhere. Surely it looks like time for open source...

What do you feel about BMP and android. Which platform do you prefer.

Related posts:

--

Thursday, January 29, 2009

Evaluation of android platform

The android platform is a mixture of Linux kernel and a Java application interface. Evaluation

The Linux kernel is very well tested over the years. In android, this has been slightly modified to suit the embedded / mobile environment. Linux as a OS is the most stable. So having the same as a mobile OS is also good.

For the developers the Java platform is most suitable for developing applications, since you don't have to worry about pointer and OO language increases the usability and maintainability of the system. Java forms one of the largest developer communities. So this combination is ideally suited for a mobile platform. Since java runs very slowly on a mobile, the virtual machine is modified. The Dalvik virtual machine is register based instead of the usual stack based VM's. This supposedly runs much faster.

Overall the platform looks very well organised and suits the mobile environment. Now after making this a open source we need to see the role of google in promoting and maintaining this platform.

Performance of android market

The android application market is quite similar to apple store, the main difference being that the applications are not controlled by google.

Anybody can register as a developer with a nominal fee of $25 and post their applications into this android market from where the users can download their applications. Presently only free applications are allowed to be posted and hence the market is given the name beta. Quite a good number of application are available now for free.

The rating system is same like that of you tube. How good this system will be only time will tell. Nonetheless its very easy for developers to post their applications onto this market. This should attract a lot of developers to post their applications in this market. As the number of applications increase how google manages it remains to be seen. It should have a mechanism to discourage apps that have bad rating.

Tuesday, January 27, 2009

building blocks of android application

To understand the basics of an android application and how it works, first we need to understand these terms.

Activities: This is the atomic functionality. An activity is usually a single screen in the application. When associated a UI it will be similar to a page/form of other platforms. There exists a stack of activities that is maintained by the activity manager. Every activity in android is associated with a class. It runs/exectues in the process that creates it.

Intents : Android uses a class called 'Intent' to move from screen to another. It has the information describing the action, data etc.

Intent Filters: specifies what the activity is capable of handling.

Service: Service is the one that performs a particular task for another applciation. Application which makes use of this service runs on different processes. Since they run on different context/process it makes use of Binder IPC for the communciation.

Content Provider: This is normally used for accessing lower level functionality like file access, network access etc. The content provider provides the platform related functionality to the running application.

Task: This contains a collection of related Activites. These set of activities perform a particular task. This is comparable to an application on other platforms.

Process: This is a simple linux process.

Friday, January 23, 2009

why android was open-sourced

Android is now released in the market and the first google phone is available. But what is the benefit that google is getting by making in open source. Till now I haven't come across a convincing answer to this. Google gets its main revenue from advertising in the internet. The only reason that could be is that, by making android open source it tends to increase its revenue in the mobile internet users market. Only time will tell what its strategy is... advertising on mobiles ??? :-)

apache license for android

I read a few blogs on why google chose apache license for android. It mentions that if android were to use gpl license then nobody would then adopt android, because any properiatery software that are pluged-in to android would have to be made open source. Even though it would lead to more openness and faster development, many would like to avoid it. It has even chosen bionic libc just to keep the gpl license out of user space. It would be a nightmare for developers if everything that they develop were to be made open source. So apache license does make sense...

Wednesday, January 21, 2009

brew and android

Android is released after Brew so you can expect all the advantages of brew to be incorporated in android.

One of the best features of Brew is that you can write extensions. i.e. plug in components of the applications and introduce new features into the application. This feature is almost non-existant in any other software platform. In other platforms such an application can be created only by native application developers. In android, there exists no difference between a native developer and third party. So anybody can write such applications even if the feature is non-existant.

In Android, this feature is implemented in the form of AIDL. You can write one application which provides a specific service to another app. (this is as good as an extension). Since this is developed as a new applciation it can be shipped later.

Another striking difference between the two platform is that brew supports only CDMA mobiles whereas Android supports GSM, UMTS technologies. Since Android is open-source you can expect it to support CDMA in the near future.

porting to android

I have been working on brew platform from a long time now. For a change I am now presently looking into the android platform. Intially I was thinking that android platform would be similar to that of J2ME. But it isnt so. Only the basic J2ME libraries are supported in android. The application structure, activites, tasks and threading mechanism is quite different than J2ME. This means that for an application to port from J2ME to android is as tough as porting it from any other platform. But the number of API's supported by android is very good which makes porting to this platform easier. This is only my first impression of this platform, have to see how it goes...


Learning android platform

To learn android platform it would be better first to go through the presentations in the android website.

There are four presentations that give the detail about the components of the android platform. After understanding this you can choose your area of expertise and dig deep into the same.

I felt it would be better to learn about the platform by first concentrating on the kernel. The kernel is essentially the Linux kernel with some modifications for the mobile environment. Modifications include the binder (IPC driver), Power manager, bionic libc etc.

Android has tried to remove all the disadvantages of various software platforms and designed this platform to find a way around it. This is why I feel android would be a great success in the market. Also this has the added advantage of being open source. This would make the development much faster as more eyes will look into the code. This has even forced nokia to consider making symbian open source.

Looks like the telecom world is going through the phase of open source. Whether this will make telecom market better or kill it completely needs to be seen...

Tuesday, January 20, 2009

downloading git and android source in ubuntu

1. Install ubuntu 6.06 or above.

2. while installing linux if you are inside the firewall you need to modify /etc/apt/source.list. comment the first line and uncomment all other links.
If you are inside a firewall and the links to ubuntu updates are blocked while installing linux then you need to modify the above file. The first link will be prompting you to insert cdrom which needs to be commented and the other links will be commented if there is no access to it while installing linux. This can be later modifed by the root.

3. sudo apt-get update - this would update the sources.list with the latest packages available in the ubuntu public sites and the dependencies of each software to be installed.

4. sudo apt-get install git-core to install git. -This step will install git along with the dependent libraries. Alternately you can download the deb file and install in which case u need to install the dependent libraries yourself. I would prefer installing it this way first to install all the depending libraries first and then installing the required revision of git.

5. specific version of git is available at http://git-scm.com which can be downloaded and installed.

6. Follow the steps as given in http://source.android.com/download

With all this steps I was able to download the source of android at work :-)