Android Articles
I just bought a Samsung Vibrant (Galaxy S)
(by PeEll)2010.07.24My first experience with the phone has been awesome. The phone is much lighter than my G1 (and is even favorable to even my car key), it's faster, it's stable (although I haven't been able to root or replace the ROM on it yet, hee hee), and the screen is much better. I was definitely afraid of giving up a hardware keyboard, but with Swype, it's very easy to use. I'll post a full video review at some point, but for now I need to get back to playing with my phone.
While you wait, here's a picture I took from the phone on the 5MP camera:

comments | permalink
Upgrading my phone from CyanogenMod 6.0 RC1 (Froyo) to CyanogenMod 5.0.8 (Eclair)
(by PeEll)2010.07.21The title of this article is correct, I believe I just upgraded my G1 from Android 2.2 to Android 2.1. Over a week ago now, I had upgraded to CyanogenMod 6.0 RC1, and every day it seemed to slow down a little, and get a little less reliable. Sending messages, launching the phone, or checking settings would sometimes lock the device up for 10-20 minutes, and other times it would reboot the entire phone.
I flashed the CM 5.0.8 image, wiped, and flashed the image again and my phone came back with all of my settings, applications (I was previously using Apps2SD, which doesn't yet work in CM6), and my phone responds about 30 times faster than the G1 on Froyo.
Although I love the idea of CM6 and Froyo on the G1, for me the device was much too slow and lacked stability to continue using it. I'll switch back when the following criteria have been met:
- Android Marketplace background threads don't crash
- Settings/Phone/Messaging/Home Screen don't take 20-360 seconds to load
- Flash is available for the browser
- Apps2SD works again as an option for storing applications on the SD card
Until then, I'm back on CM 5.0.8 and happier than I could have imagined.
comments | permalink
Fixit: Cyanogen ROM Manager for G1 Broke Recovery Partition
(by PeEll)2010.07.13After finally getting CyanogenMod 6.0 RC1 to work on my phone (Hurray for Froyo!), I felt like getting a little dangerous and checking out the ROM Manager, and updating my Recovery partition from the very old JesusFreke version. The problem was that running the "Install ClockworkMod Recovery" tool reported sucesss, but when restarting my phone, neither the recovery partition, nor normal boot worked.
I have learned a lot about my phone while fixing this, and below are the steps to resolve this and get a working Recovery partition. I believe the entire issue is caused by a lack of memory on the G1 when running CM6.0 that results in the Recovery partition install failing, while still reporting success. I'm going to assume you have the Danger SPL because this is required to get G1 working at all with CM 6.0.
Steps to fix
- Pull the battery or start your phone from the "off" position
- Let your phone charge for around 20 minutes (or ensure you have at least that much battery power)
- Hold the back button and press power - The phone should enter "fastboot" mode, which actually comes from your phone's SPL.
- Press the button associated with "Reset", which is also called "Send' or the "Call button".
- Reboot your phone - You should now be able to get back into your main CM 6.0 install.
- Turn off the phone again
- Hold the back button and press power again - The phone should again enter "fastboot" mode.
- Plug in a USB cable to your computer
- Download fastboot from http://developer.htc.com/adp.html
- Download the Recovery Image you want (For me this was RA-dream-v1.7.0.img, but check the bottom of this forum post to make sure you have the most recent version.
- Run fastboot flash recovery
(On linux this was sudo ./fastboot flash recovery ~/recovery-RA-dream-v1.7.0.img) - This uses your "fastboot" mode phone that has plenty of memory to write the new recovery image properly. - Reboot (sudo ./fastboot reboot works in linux)
- Reboot or power on while holding "Home", and you should boot into your recovery partition.
- Everything should work at this point, your SPL which you didn't touch, your recovery partition which you overwrote, and your main partition which you reset into a working state. Congratulations!
Still having issues?
Leave a comment and hopefully I or someone else can help you.
comments | permalink
Be Careful with CyanogenMod 6.0 RC1's Rom Manager
(by PeEll)2010.07.11This weekend I updated my phone from CyanogenMod 5.0.8 to CyanogenMod 6.0 RC1. This is a great improvement that has improved the stability, speed, and visual appeal of my phone. Despite some ongoing issues with the market, my phone is in the best state it has ever been in.
Since things were going so well, I decided to try using the ROM Manager included in the release. The ROM Manager has a built in tool to install the ClockworkMod Recovery image. A couple of taps later and my device reported that the ROM Manager was installed. I attempted to reboot my phone and was left with a persistant "G1" message that would never go away. This occurred regardless of whether I attempted to boot normally or into Recovery Mode. Thinking my phone was permanently bricked scared me a lot.
The "fix" (although I still have no Recovery Image) was to hold the camera button when booting the phone, and then tell what I believe was Danger SPL to reset my phone. This was a very scary menu option, but thinking my phone was bricked meant I had nothing to lose. After pressing the reset button and restarting my phone, it booted fine back into CM 6.0 RC1, with all of my data, apps, and settings still in place.
End Result
In the end, I am running Froyo (Android 2.2) on my G1, and I'm pretty happy with it. The market crashes and I can't install some apps that started downloaded but never finished. I have no recovery image, my phone is still slower than I would like it to be (Not CyanogenMod or Froyo's fault), and voice text entry doesn't work. On the other hand the Gallery application now has 3D presentation of my photos and videos (including those stored on my device, but not taken from my device); it is reasonably fast too.
I'm waiting to see if any of these items are improved or fixed in the next release, as always.
comments | permalink
iPad Frustrations (or how I learned to stop worrying and love Android)
(by PeEll)2010.06.21iPadFor work I have needed to become accustomed to and extremely familiar with Apple's iPad. Part of that process has been using it off and on for about two weeks now. In that time I have learned many things. I found out that to turn the device on for the first time, you need a windows or mac computer running iTunes. I found out that every time you install an application, the device takes you to the home screen, and you have to manually relaunch the marketplace to install another from the same list or category. I found out the screen gets smudged and covered in finger oils very quickly. Finally, I found out that the iPad is a pretty decent device for small games in terms of form factor and touchscreen interface.
In regard to the overall concept of a tablet (be it iPad or Android), I'm not sure I'm fully sold. It looks great, and it feels futuristic holding it in my hands, but at the same time data entry becomes a huge nuisance (I can type around 90 words per minute, but with any sort of touch screen, including a large screen like on the iPad, I'm reduced to ten to thirty words per minute). This may be a level of lazy that most humans aren't prepared for, but I also found my hands getting tired or bored holding the screen up for long periods of time. These could be solved with an attachable or bluetooth keyboard, and a case that allows propping the device up, but I'm not looking for a workaround for the iPad, I'm looking for a solution to my problems. This means that in most cases I would recommend a netbook or laptop with a touch screen.
The Biggest Failure of the iPad
I'm not sure if this is something others have run into, or if it was just me. On the other hand I can't believe this happens to anyone, when apple is so famous for "intuitive user experiences". Today when I attempted to copy a photo or two to the iPad, I plugged it in using the provided cable, and iTunes told me that the device could not be connected to, and would need to be reformatted back to factory settings. I was shocked. It still told me there was a connection, it told me my software was up to date, and showed me the serial number of the device, but I couldn't connect or sync or transfer any data.
After fuming for a few minutes about the devices' inability to retrieve my data or recent interactions, I gave up and submitted to a factory reset. After a few warnings asking me "Are you sure you are willing to delete all of your settings and data and media on the device?" (not that I had much choice), the device began reformatting. When it was complete, I was happily surprised that it asked me if I wanted to restore a backup from the previous week. I chose to do so and when it was complete, removed the device from USB. When I launched the device, I was shocked to find none of my programs or settings had been restored, all of my applications were missing. Once again being saddened, I reconnected the device to the computer and let it sync again. This time the sync restored my applications and data.
I consider myself a power user or computer expert, but even I was at a loss as to what was going to happen after each of the steps. How are normal users supposed to know that a "complete factory reset, losing all data media and settings", would later have the option to restore those pieces? This type of experience glitch probably has a lot of people going to Apple and paying for extra support, which further incentivizes them to try to maintain a faulty product, along with a culture that believes everything they make is perfect.
Apple is full of Jerks
It's been seen over and over again, with everything from multitasking to copy and paste. Apple releases a product stating "you don't need features x y or z, they are only for geeks and people don't need them", and consumers buy into that. A year or two later, Apple adds those features and says "look, we added features x y and z because they are useful and good for consumers", and make consumers foot the bill for an entirely new product often. This type of capitalistic behavior is one of the worse outcomes of capitalism because consumers aren't informed enough to know they they are buying into and supporting vendor lock-in.
Comparing all of this with Android and Google's development model shows they are on completely opposite ends of the spectrum . The Android developers want you to be able to use your phone or device or microwave however you want to. This includes being able to get data off of your SD card when there is a hardware failure, as well as things like being able to use Flash. As much as I hate to say it, we need to follow the early 90's Microsoft model and build an open platform so that everyone can build applications. With Android, we can make sure that platform is truly free this time.
comments | permalink
Android Lacks Ogg Theora/Vorbis HTML5 video
(by PeEll)2010.05.28Although Android is supposed to support HTML5, including the video tag, unfortunately this doesn't mean the Android supports open codecs such as Ogg Theora/Vorbis. This is a huge disappointment because Google has made a commitment to open, non-patent encumbered video. At this point the only option is to wait for .webm and hope that everyone support, implements, and uses it; or you can encode your videos as .H264 .mp4 videos, but that would be supporting patent-encumbered formats.
comments | permalink
Some Humor in Android - Froyo's API
(by PeEll)2010.05.21The new Froyo API has a few jokes and curious pieces. I am most interested by the following methods from the api:
comments | permalink
Google IO Keynote 2 Notes
(by PeEll)2010.05.20I have included my rough notes from Google IO 2010, keynote 2 below. I'll be cleaning them up as I have time as they are rather unorganized now.
Some of the initial comments by Google compare "draconian future" and Apple which ends up coming off pretty inflamatory. "If you want freedom, choice, etc, welcome to android".
At this point, they are coving some of the milestones achieved by Android:
- Wow, 100,000+ new android activations per day worldwide
- Android is #1 for web and application usage as of now
- 1 billion miles of paths navigated on android in 6 months
- 5x growth in mobile search from '08-'10 (across all mobile phones)
- 50,000 applications in the marketplace
- 180k developers.
- 7 releases in 18 months.
At this point, the discussion turns to Froyo, the new Android 2.2 operating system. They gently sprinkle post-froyo functionality that they are working on. I will try to mark where they said something might be post-2.2, but I may have missed a couple of these indicators.
Announcing Froyo - Android 2.2
Android speed
They have achieved a lot of things with the Dalvik VM, and one of the biggest of these is a speed increase in the newest version. They introducing JIT (just in-time compiling). With existing applications and hardware, this has a 2-5x speedup effect, which is frankly pretty amazing, and somewhat needed.
They demonstrate a game: replica island comparing Eclair and Froyo. Although they use the same hardware, froyo is faster.
Enterprise Device Administration
The intent is Android works well with existing enterprise infrastructure and management tools. The new version of Android is completely capable of belonging to a domain name, with features like remote wiping of the device, and the application of domain policies for phones that belong to a domain.
New services in Android SDK
This includes items such as a new data backup API that allows you to migrate data when you migrate phones. One of the more groundbreaking additions to the API is a Cloud to Device messaging API. This API allows you to start intents remotely. Imaging looking at a google map with directions on the desktop browser, being able to click a button and have those directions on the mobile device.
The second example of the Cloud to Device messaging API they talk about is the idea that you could be reading an article on the desktop, press a button and sends article to device.
Tethering and portable hot spot
More devices shouldn't mean more complexity and bills. Android of capable of serving the needs of other devices. The demonstration used an Android to give an iPad internet, to the amusement of the crowd.
Android Browser Improvements
Their data shows that the top three things individuals use their phones for are as follows:
- Phone calls
- text messaging
- browser
Froyo is introducing a 2x-3x browser performance increase. The way they are achieving this is with V8 for android. They show a demo comparing Froyo, Eclaire, and an iPad using the Sunspider test. iPad started first and given a head start. The results end up showing that Froyo finishes, then iPad, then a very close third is Eclair for browser javascript performance.
They had a frog swimming laps to show the sunspider benchmark performance in an interesting way, and he makes a joke about whether or not they could get this in the app store, but then makes the comment that it's a web application.
Integration with Native Capabilities
Orientation/Camera/Speech/Magnetometer/Accelerometer are all capabilities native to the phone that they want to expose to browser-based applications, not just native applications. Google made a very loud and clear statement that they intend on maintaining leadership in browser capabilities on the phone. They will be offering web developers access to orientation, camera, speech, magnetometer, accelerometer. This could possibly be beyond Froyo.
At this point, they demo a web-based Buzz Camera application for demonstrating picture taking as part of a Google Buzz status update. The demo fails the first time, but they come back to it and it works.
They really stress the idea of accessing capability from browser: translate app with new feature: microphone "can you help me find the nearest hospital"
Existing Android Features are getting better
They provide a demo of voice search:"pictures of barack obama with the french president at the g8 summit", "pictures of the golen gate bridget at sunset", and "del dotto vinyards, napa". Each of these terms is quick and effective.
Human intention understandings
The live example they perform is "call 5th floor restaurant", which is a contact in his phone.
Flash 10.1 public beta, AIR Developer Pre-Release
Another few rips at apple: "Worlds most comprehensive browser" "It turns out that on the internet, people use flash"
They state that part of being open means your inclusive, rather than exclusive. He gives an example where his daughter had picked up her ipad, tried to go to nickelodian. On the iPad, all she got was a big orange screen, but it works perfectly using Android. He calls out a "special thanks to adobe", as they have been working together to meet the needs of users . He says that this is "much nicer than just saying no".
Android Marketplace
The average Android user installs more than 40 apps per devices. They want to add the capability to search inside apps, move apps to sd card, update all apps. Their new interfaces for keeping applications on the SD have the functionality that apps automatically move if you run out of space, as well as allowing manual control if you want it.
On the phone, developers can plug into the search framework. The live example he shows is that mint returns financial records in the smart search box. The addition of an "Update all" button is great, and he states that they were basically embarrassed that we didn't have that before. You can also allow automatic updates on an app-by-app basis with an "allow auto update" checkbox.
They understand that you need to close the loop between users and developers to improve quality of app store. A new "Report" crashes feature goes to the developer. Developer gets to see the entire stack trace of real user bugs from real user devices.
Post froyo: they will be releasing a web market that is automatically connected to all of your android devices, browse and install from the web. They make a comparison with the Apple model where you are always tethering and syncing your whole device. "We discovered something really cool, it's called the internet", when he presses download, it automatically installs in the background on the device over the air.
They plan on extending the Android marketplace "because it's more than apps", including features like Music sales, that are instantly and immediately send to the devices "using the internet".
One question they ask is "What do I do with my existing music?" They answering this question with the services of one of the companies they bought, simplifymedia - makes all of your non_DRM music available to device over internet. This capability is similar to the Gmote, but much more mainstream. When they plug in the speakers to the device, they realize they still have the phone call to the 5th Floor Restaurant still going on in the background. This is a great unintentional advertisement for multi-tasking.
Advertising on Android
Google really applies their experience and wisdom to the new market of advertising on mobile devices. For Advertising you need a healthy ecosystem, and "you need advertisers, we have them. If you have an ad spot, we have invetory to fill it.". They show several new advertisement types and notes they are working on releasing.
- local advertisers, direct response, brand advertisers - need formats that meet different needs
- measurement for advertising on android
- "we have some tools you may have heard of" adsense, analytics, doubleclick
- Open to Innovation (cute google ponies)
- adsense for mobile apps - contextual relevance
- direct native interaction for advertisements within context of app
- expandable add with rich media (movie trailers)
- add format with direct phone call.
- expandable with embedded map and click to call.
- fully immersive inline ad with integration delivered by medialens (not through google), doubleclick works with any ad network based on relevance.
Google TV
Again they list some facts / observations, and then move into some of the new features and opportunities provided by Google TV.
- For developers - no bigger market than tv
- "TV Just Works" - access really cool stuff
- 1994 laptop, 2007 mobile, TV,
- Web and TV is completely separate
- Today everyone sits around the laptop,which doesn't work.
- Don't put web on TV (WAP SUCKS)
- Closed doesn't work, people must go to anywhere on the internet
- Using the TV's "input button" loses 90% of people if you have to switch
- If you make them choose "TV or Web", they choose TV.
- Google TV, tv meets web, web meets tv
- things that will redefine tv:
- less time finding, more time watching
- control and personalize what you watch (and when)
- make tv content more interesting
- To me, this sounds like mythtv, but perhaps better executed, and more backed by a huge company?
- There are too many chanels for existing guides. Users need the relevancy of search
- search box for tv (same empowerment) "Quick search box" accross tv and web
- dvr integration
- Android phone input device, pairing over wifi (VOICE RECOGNITION FOR TV through phone)
- browsing a web page on the phone, click button (pushes to TV)
- remote control protocol standardized (open source)
- Google TV: (Built on android)
- Android apps on TV
- Push apps from Google Apps to Google TV
comments | permalink
New Multiplayer Android Game: RallyRacer
(by PeEll)2010.05.03Today I would like to introduce RallyRacer, a new multiplayer game for android. RallyRacer allows of set of players to control robots on a game board. Each player organizes a series of commands in an attempt to move their robot across the board, and to be the first one to reach the goal. The problem for the players is that their control of their robot isn't absolute, so other players are going to be pushing them around, shooting them (and damaging their ability to control their robot), and being moved by traps throughout the game board.
Control Scheme
The game works by first loading the game board using a web browser. Then all of the players connect with their android phones. Players send commands as they finish organizing the instructions for their robot, and the results are seen live on the screen as each of the rounds of play resolve.
The game isn't quite ready for public release yet, but players will simply need to visit the game site on a computer. Ideally this computer would be connected to a tablet or television for public viewing. Then each of the players launch the RallyRacer android application and begin playing the game.
Current State
The game can be found on GitHub. Currently we have a server that leverages the new Webkit transitions to animate the gameplay. The server connects to a PHP backend using AJAX to obtain state and animations. There is an android client package [.apk] that will allow you to play the game on the Android. Additional features such as connecting to a non-mortalpowers.com server are in development for the client. There is also a very early web client that replicates some of the android client features. The major problem with the web client is that if you use the same browser to access it, it shares state with the server, which is problematic.
Right now the android client and server combination allow up to 3 players to connect, send commands, and move their robots around, colliding and pushing each other on the game board.
comments | permalink
Designing HTML for Mobile (Android and iPhone)
(by PeEll)2010.01.26The W3C recommended way of targeting mobile devices is for stylesheets to use the media attribute. Unfortunately, this attribute isn't used by either the Android browsers or the iPhone browser. Instead these browser report that their media is of type "screen", this is the standard used by desktop browsers as well.
There is a trick that is possible still using media detection that selectively applies the styles based on the screen width. The following code is an example of two stylesheets. The first should be applied on desktop computers, and the second should be applied on Android and iPhone.
<link href="/inc/mobile.css" rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)"/>
Find additional information and tips at http://www.rkblog.rk.edu.pl/w/p/optimizing-websites-iphone-and-android/
comments | permalink
Success with CyanogenMod
(by PeEll)2009.10.23After the previous failures I had with installing CyanogenMod, I conversed some colleagues who have the same phone, and were considering making the changes. I also revisited the instructions provided on the site. It appears I missed/skipped a step that I misunderstood. The necessary step I missed was to wipe the phone after the nandroid backup, but before the installation of the HTC image, or the CynogenMod ROM.
My initial experience with CyanogenMod was extremely positive, the phone seemed prettier and had tons of new functionality. The one issue that remained was a speed issue. I began uninstalling apps, and things seemed to get much better, despite the fact that CyanogenMod has APP2SD to store applications on an EXT2/3/4 partition on the SD card.
Everything has seemed to work extremely well over the past few weeks as I have used and played with the new rom. I have also upgraded to 4.1.9999 in the past day or two. Today when I attempted to connect to my S9 headset and play music, I have experienced some halting, and the music application crashes. I will wait for the next, allegedly more stable, release from Cyanogen, and hopefully this final issue will be resolved.
comments | permalink
My First Experience with Cyanogen Mod
(by PeEll)2009.10.11After JesusFreke stopped providing ROMs in August, I have been looking for a good replacement for my Android phone. I recently discovered Cyanogenmod, and after much research and planning, I decided to give the install a try.
My Install Steps
- visit http://ryebrye.com/files/flashrec.apk in the browser
- Install the app
- Open the App
- Tap "Backup Recovery Image"
- Tap "Flash Cyanogen Recovery 1.4
- Power off phone
- Start up with Home and Power
- Perform Nandroid backup
- home+back to reboot
- copy 3 files to sd card root
- power off phone
- start up with home and power
- apply any update from zip file
- choose: signed-dream
- apply any update from zip file
- choose: update-cm
- go to console.
- run "fix_permissions"
- run "reboot"
- wait a billion years
My Results
error after error after error, phone doesn't work, apps don't work, infinite loop of android errors.
Recovery and Attempt Number 2
- Reboot in recovery mode
- Select restore more recent backup
- Reboot
- Woot! Everything seems to work again!
- Check Apps2SD settings and move some of the more important apps off of SD Card
- Uninstall JF Updater
- New Nandroid backup
- Attempt #2
comments | permalink
Android Development Error: incorrect AVA format
(by PeEll)2009.06.08I received an error while attempting to export a signed .apk file using the Android Development SDK in Eclipse. The error was incorrect AVA format. A few quick google searches didn't result in anything useful, but it turned out that this means the format of the data I provided for the certificate contained unacceptable characters. In my case, I had used a comma inside the Organization name. Removing the comma from this name fixed the problem and allowed me to fully export my signed .apk file.
comments | permalink