Canonical Voices

Posts tagged with 'android'

Michael Hall

Bicentennial Man PosterEver since we started building the Ubuntu SDK, we’ve been trying to find ways of bringing the vast number of Android apps that exist over to Ubuntu. As with any new platform, there’s a chasm between Android apps and native apps that can only be crossed through the effort of porting.

There are simple solutions, of course, like providing an Android runtime on Ubuntu. On other platforms, those have shown to present Android apps as second-class citizens that can’t benefit from a new platform’s unique features. Worse, they don’t provide a way for apps to gradually become first-class citizens, so chasm between Android and native still exists, which means the vast majority of apps supported this way will never improve.

There are also complicates solutions, like code conversion, that try to translate Android/Java code into the native platform’s language and toolkit, preserving logic and structure along the way. But doing this right becomes such a monumental task that making a tool to do it is virtually impossible, and the amount of cleanup and checking needed to be done by an actual developer quickly rises to the same level of effort as a manual port would have. This approach also fails to take advantage of differences in the platforms, and will re-create the old way of doing things even when it doesn’t make sense on the new platform.

Screenshot from 2014-04-19 14:44:22NDR takes a different approach to these, it doesn’t let you run our Android code on Ubuntu, nor does it try to convert your Android code to native code. Instead NDR will re-create the general framework of your Android app as a native Ubuntu app, converting Activities to Pages, for example, to give you a skeleton project on which you can build your port. It won’t get you over the chasm, but it’ll show you the path to take and give you a head start on it. You will just need to fill it in with the logic code to make it behave like your Android app. NDR won’t provide any of logic for you, and chances are you’ll want to do it slightly differently than you did in Android anyway, due to the differences between the two platforms.

Screenshot from 2014-04-19 14:44:31To test NDR during development, I chose the Telegram app because it was open source, popular, and largely used Android’s layout definitions and components. NDR will be less useful against apps such as games, that use their own UI components and draw directly to a canvas, but it’s pretty good at converting apps that use Android’s components and UI builder.

After only a couple days of hacking I was able to get NDR to generate enough of an Ubuntu SDK application that, with a little bit of manual cleanup, it was recognizably similar to the Android app’s.

This proves, in my opinion, that bootstrapping an Ubuntu port based on Android source code is not only possible, but is a viable way of supporting Android app developers who want to cross that chasm and target their apps for Ubuntu as well. I hope it will open the door for high-quality, native Ubuntu app ports from the Android ecosystem.  There is still much more NDR can do to make this easier, and having people with more Android experience than me (that would be none) would certainly make it a more powerful tool, so I’m making it a public, open source project on Launchpad and am inviting anybody who has an interest in this to help me improve it.

Read more
Prakash Advani

Huawei’s MediaPad X1 is not only a good alternative to an iPad Mini but also has phone capabilities. Announced at Mobile World Congress and expected to be launched in March 2014.

Claimed to be the slimmest 7″ tablet, Here is what is cool about it:

  • 3G with calling facility
  • 4G LTE (optional)
  • Quad Core Processor
  • 2 GB RAM
  • 7″ Full HD, IPS panel
  • 13 MP camera (sony lens), with 5 MP secondary camera
  • 16 GB Internal storage
  • Expandable MicroSD slot
  • 5000 mAh battery, which is powerful enough and can also be used to charge other devices
  • WiFi  b/g/n, Dual Band in the 4G version
  • Active Noise Cancellation
  • Bluetooth 4.0
  • Just 239g lightweight and slim

Here are the limitations:

  • No Android KitKat, there is no plans or commitment for Huawei.
  •  Little awkward to use a phone because of the large size.

Since today’s phones don’t even last a day, you should use your primary phone for voice only, and use this device for all data activities. The X1 could be good tablet device but little awkward to hold as a phone. Could be used with Bluetooth as a phone.

Read more
Prakash Advani

Interesting tidbits:

Rubin recounted his first meeting with Samsung’s executives by saying “You and what army are going to go and create this? You have six people. Are you high?’ is basically what they said. They laughed me out of the boardroom. This happened two weeks before Google acquired us.”  Considering that there were actually eight people on the team for Android, it shows that they really did not care for the company at all.

Back to 2005.  Google CEO Larry Page agrees to meet with Rubin and loves the idea.  Google had been looking for an innovation to bring to the mobile industry, and they were afraid that another company, such as Microsoft with their massive resources, would beat them to it.  Page offered to purchase Android for $50 million and some various perks, and the whole original Android team was absorbed into Mountain View at Google HQ, and thus began the story of Android, and how it was not taken by Samsung but rather the innovative Google.

Never underestimate what a 6 people company can do :)

Read the complete article: http://www.androidheadlines.com/2014/02/andy-rubin-offered-android-to-samsung-first-and-they-laughed-just-two-weeks-before-google-snapped-android-up.html

 

Read more
Prakash Advani

A friend of mine was looking for a budget phone with a lot of features. While there are bigger brands which are more expensive, I came across Xolo Q3000 which offers similar features at an affordable price.

Here is what I liked about it:

  • 5.7″ IPS  full HD display – good if you like big displays
  • 1,5 GHz Quad Core Processor
  • 2 GB RAM – enough to run many applications
  • 4000 mAh  battery – this is almost double than most phones, will give you a charge for days not hours!
  • Dual SIM
  • 13 MP Camera
  • 16 GB built in Memory with MicroSD Slot
  • Android 4.2
  • Micro USB and USB on-the-go

Although I haven’t used a Xolo myself, I have also heard about some issues with Xolo’s service.

The competitions (namely Micromax and Intex) are about to launch Octo-core processors (8 cores), I don’t know how much better performance you will derive but for now this looks like a good phone.

 

Read more
Prakash

Former Nokia employees have got together to start Newkia, a company which plans to do what Nokia missed — Build an Android phone.

Sounds like a great idea, since Nokia has very good engineers and one of the best hardware, what they lacked was good software.

Read More.

Read more
Matt Fischer

This week I’ve been hacking some of the initrd scripts in Ubuntu Touch and I thought that I’d share some of the things I learned. All of this work is based on using Image Update images, which are flashable by doing phablet-flash ubuntu-system. First, why would you want to do this? Well, the initrd includes a script called “touch” which sets up all of the partitions and does some first boot migration. I wanted to modify how this process works for some experiments on customizing the images.

Before getting started, you need the following packages installed on your dev box: abootimg, android-tools-adb, android-tools-fastboot

Note: I was told after posting this that it won’t work on some devices, including Samsung devices, because they use a non-standard boot.img format.

Getting the initrd

The initrd is inside the boot.img file. I pulled mine from here, but you can also get it by dding it off of the phone. You can find the boot partition on your device with the following scriptlet, taken from flash-touch-initrd:

for i in $BOOT; do                                                              
    path=$(find /dev -name "*$i*"|grep disk| head -1)                           
    [ -n "$path" ] && break                                                     
done
echo $path

Once you have the boot.img file by whatever means you used, you need to unpack it. abootimg is the tool to use here, so simply run abootimg -x [boot.img]. This will unpack the initrd, kernel and boot config file.

Unpacking and Hacking the initrd

Now that you have the initrd, you need to unpack it so you can make changes. You can do this with some cpio magic, but unless you have a UNIX-sized beard, just run abootimg-unpack-initrd . This will dump everything into a folder named ramdisk. (UNIX beard guys: mkdir ramdisk; cp initrd ramdisk; cd ramdisk; cat initrd | gzip -d | cpio -i)

To make changes, simply cd into ramdisk and hack away. For this example, I’m going to add a simple line to ramdisk/scriprts/touch. My line is

echo "mfisch: it worked!" > /dev/kmsg || true

This will log a message to /var/log/kern.log which can assist us to make sure it worked. Your change will probably be less trivial.

Repacking

Repacking the initrd is simple. To repack, just run abootimg-pack-initrd [initrd.img.NEW] Once you do this you’ll notice that the initrd size is quite different, even if you didn’t make any changes. After discussing this with some people, the best I can figure is that the newly packed cpio file has owners and non-zero datestamps, which make it slightly larger. One clue, when compared to mkinitramfs, abootimg-pack does not use the -R 0:0 argument and there are other differences. If you want to do this the hard way, you can also repack by doing: cd ramdisk; find . | cpio -o -H newc | gzip -9 > ../initrd.img.NEW

Rebuilding the boot image

The size change we discussed above can be an issue that you need to fix. In the file bootimg.cfg, which you extracted with abootimg -x, there is a line called bootsize. This line needs to be >= the size of the boot.img (not initrd). If the initrd file jumped by 4k or so, like mine did, be sure to bump this as well. I bumped mine from 0×837000 to 0×839000 and it worked. If you don’t do this step, you will wind up with a non-booting image. Once you correct this, rebuild the image with abootimg:

abootimg --create saucy-new.img -f bootimg.cfg -k zImage -r initrd.img.NEW

I’ve found that if your size is off, it will sometimes complain during this step, but not always. It’s best to check the size of saucy-new.img with the line you changed in bootimg.cfg at this point.

Flashing and testing

To flash the new boot image, reboot the device and use fastboot.

adb reboot bootloader
fastboot flash boot saucy-new.img

Use the power button to boot the device now.

Once booted you can go check out the kern.log and see if your change worked.

Aug 13 16:11:04 ubuntu-phablet kernel: [    3.798412] mfisch: it worked!

Looks good to me!

Thanks to Stephane Graber and Oliver Grawart for helping me discover this process.

Read more
Prakash

While it is not certain if Google is going to offer Android or ChromeOS for PCs, but Intel is already working on making the $200 Android PC to boost the sagging PC sales.

So far, the notebook market is dominated by two players, Windows and OS X, but there’s an operating system that could drop into this mix and be highly disruptive — Android.

There’s been a lot of discussion bouncing around the tech blogosphere about Intel’s plans to get all disruptive and start supporting Android on devices that will cost in the region of $200.

While Microsoft might not be happy about being sidelined by a company that was once one of its biggest supporters, this is exactly what the PC industry needs.

Think this is a huge leap? It isn’t. Some of Intel’s Atom processors are already compatible with Android 4.2 Jelly Bean.

Read More.

 

 

 

Read more
Prakash

ASUS CUBE with Google TV Entertainment Device

Asus Cube (was earlier Qube), looks like an interesting device.

  • 5″ Cube, not exactly small enough to fit behind your TV.
  • HDMI in and HDMI out
  • LAN and Wireless
  • 2 USB Ports
  • IR Ports for remote
  • Remote with keyboard
  • Android 3.2 with Google TV
  • Streaming media: Google, Amazon and Netflix.
  • 50 GB free cloud storage from Google.

 

 

 

Read more
Prakash

While Samsung is busy launching the Galaxy Grand and Micromax the A116 Canvas HD, Karbonn has launched the S1 Titanium.

All of them are big screen phablets (phone+tablets) and here is what is common and whats not.

  • Dual Sim
  • 1GB RAM
  • Android 4.1 (Jelly Bean)

Here is the difference, Lets see which one rocks.

Samsung Galaxy Grand Micromax A116 Canvas HD Karbonn S1 Titanium
Display Size 5″ 5″ 4.5″
Display Size 480 x 800, 187 ppi 720 x 1280 pixels, 294 ppi 540 x 960 pixels, 245ppi
CPU Dual Core 1.2 GHz Quad Core 1.2GHz
Quad Core 1.2GHz
Internal Memory 8 GB, expandable to 64 4 GB, expandable to 32 4 GB, expandable to 32
Bluetooth 4.0 2.0 2.0
Primary Camera 8 Megapixel
8 Megapixel 5 Megapixel
Secondary Camera 2 MP VGA VGA
Battery 2100 mAh 2100 mAh 1600 mAh
Estimated Pricing Rs. 21,500 Rs. 14,999 Rs. 10,999

Micromax has the best display, while Karbon has the snappiest Qualcomm Snapdragon processor. The Karbonn is the best value for money. The price difference of Rs. 4000 for Micromax is huge, Expect them to drop prices even before it is launched. If the price of Micromax is dropped to around Rs. 13,000 it would be worthy paying the extra over Karbonn.

Read more
Prakash

Samsung has launched the Galaxy Grand while Micromax has launched the A116 Canvas HD. Both are big screen phablets (phone+tablets) and here is what is common and whats not.

  • 5″ Screens
  • Dual Sim
  • 1GB RAM
  • 8 Megapixel camera
  • Android 4.1 (Jelly Bean)

Here is the difference, Lets see which one rocks.

Samsung Galaxy Grand Micromax A116 Canvas HD
Display 480 x 800, 187 ppi 720 x 1280 pixels, 294 ppi
CPU Dual Core 1.2 GHz Quad Core 1.2GHz
Internal Memory 8 GB, expandable to 64 4 GB, expandable to 32
Speed 21 Mbps 42 Mpbs
Bluetooth 4.0 2.0
Secondary Camera 2 MP  VGA
Estimated Pricing  Rs. 21,500 Rs. 14,990

The Micromax has better specifications at a lower price and seems to be better value for money. The Micromax has a better display, Samsung Galaxy Grand has a newer generation processor and hence should give comparable perforamce to Micromax’s Quad Core.

 

Read more
Prakash

Root Transmission: the ONLY app that allows you to root other phones straight from your own device!

Inspired by Kos’s p2p-adb hacking toolkit (http://hak5.org/episodes/hak5-1205), this app is a pleasant, easy way to root other phones while away from your computer! Just two buttons, Root and Unroot! Connect the cable and root away! It couldn’t be simpler!

Even has its own terminal window so you can see exactly what’s going on while your phone does its thing!

You will need a ROOTED device capable of USB hosting (USB On The Go), a USB OTG cable and one-click root scripts for the devices you wish to root.

Get it here.

 

Read more
Michael

Android UI Fragments look like a great way to build re-usable elements within an app, but they don’t work exactly as expected out of the box (well, exactly is I expected – but that could be a lack of experience with android):

After defining an onClick event on a button within my fragment:

  <Button android:id="@+id/add_goal_button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/button_create"
      android:onClick="addGoal" />

I’d expected this event to be routed directly to my fragment class without the containing Activity class needing to know about it – but instead, the addGoal() method is expected on the containing Activity instead.

To connect the fragment event directly to a click handler on the fragment class (so the view doesn’t need to be handling the fragment events, you can do the following instead (thanks Brill Pappin):

public class NewGoalFragment extends Fragment {
	
	...
	
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			                 Bundle savedInstanceState) {
		final View fragmentView = inflater.inflate(R.layout.fragment_new_goal,
							   container, false);
		...
		Button addGoalButton = (Button) fragmentView.findViewById(R.id.add_goal_button);
		addGoalButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(final View v) {
				// Pass the fragmentView through to the handler
				// so that findViewById can be used to get a handle on
				// the fragments own views.
				addGoal(fragmentView);
			}
		});
		return fragmentView;
	}
	
    public void addGoal(View view) {    	
    	EditText newGoal = (EditText) view.findViewById(R.id.new_goal);
	...
    }

Filed under: android

Read more
Prakash

HTC has upgraded the One X with One X+

  • It now has a 1.7 GHZ quad-core processor
  • 64 GB Memory
  • 2100 mAh battery to give you upto 50% more usage

If you are using HTC One X, then there is not much for you. If you are planning on buying the HTC One X, you should buy the One X+

Read more
Prakash

Google Nexus range has announced the Nexus 10 which beats the iPad 4 in display resolution, where is what is cool:

  • Dual Core 1.7 GHz processor vs iPads 1.4 GHz Dual Core
  • 2GB RAM vs 1GB on ipad 4
  • Display resolution: 2560X1600 300 PPI vs 264PPI of iPad
  • 10″ Display vs iPad’s 9.7″
  • Weight 603gms vs iPad’s 662 grams
  • 8.9mm thickness verses iPads 9.4mm
  • 5MP camera with 1.9 MP rear camera
  • WiFi
  • Pricing start at $399 vs $499 for iPad

Google is claiming this to be highest resolution tablet in the world. This model is WiFi only model, if you need 3G, you need to wait for the 3G model to get released.

Read more
Prakash

  • Quad-core 1.5GHz Snapdragon S4 CPU
  • 2GB of RAM
  • 4.7″ Display
  • Sealed battery which can’t be changed or replaced.
  • 8GB  or 16 GB of internal storage (which won’t be expandable as no microSD slot)
  • Price of US$ 399 (no contract or locked)

Read more
Prakash

While most of the recent media attention on NASA has understandably focused on the Curiosity rover on Mars, that’s not the only experiment that the space and aeronautics research agency has in the works. A team at NASA’s Ames Research center in Moffett Field, California, is working on the future launch of miniature satellites constructed with Android-powered Nexus One smartphones at the helm. Dubbed “PhoneSat,” this project is part of a larger experiment called the Small Spacecraft Technology Program that incorporates small consumer electronics into working nanosatellites.

Read more.

Related posts:

  1. Galaxy S III sets Android pre-order record From TG Daily.. UK carrier Vodafone has confirmed that it...
  2. Android Jelly Bean Coming to Samsung Galaxy SII, SIII, Note and Note 2 From TheDroidGuy. According to Samsung, the Galaxy SIII Jelly Bean...
  3. Why OpenStack is important OpenStack is the future of Cloud computing. Founded by NASA...

Related posts brought to you by Yet Another Related Posts Plugin.

Read more
Prakash

Nikon is releasing the CoolPix S800C in September. With the Android and WiFi powered, you will be able to use your favourite application (Whatsapp, Facebook, Ubuntu One, DropBox, etc.) to share photos easily. Here is the cool features of the CoolPix.

  • 3.5-inch OLED touchscreen with 819,000-dot resolution,
  • 10x optical zoom
  • GPS, 1080p video capture at 30 frames per second
  • 1.7 GB onboard storage
  • SD and SDHC external storage support
  • 18 filter effects
  • HDMI Out (up to 1080i resolution)
  • USB port, and Wi-Fi
  • Weight than a half-pound (6.5 ounces)
  • 1.1-inch depth.

Related posts:

  1. Samsung Galaxy S III coming The hugely successful Samsung Galaxy family is having a new...
  2. Olympus E-M5 is a professional quality compact camera Olympus has a new baby in the micro four-third category....
  3. Android Jelly Bean Coming to Samsung Galaxy SII, SIII, Note and Note 2 From TheDroidGuy. According to Samsung, the Galaxy SIII Jelly Bean...

Related posts brought to you by Yet Another Related Posts Plugin.

Read more
Prakash

Samsung has announced the Note II, lets see how they compare:

Features Note II Note
Processor Quad Core Dual core
RAM 1.5 GB 1 GB
Built in Memory 16/32 GB 16/32 GB
Screen size 5.5" 5.3"
Camera 13 Megapixel 8 Megapixel
Android 4.1 4.0.4 (currently)
Availability September 2012 already available

Related posts:

  1. Android Jelly Bean Coming to Samsung Galaxy SII, SIII, Note and Note 2 From TheDroidGuy. According to Samsung, the Galaxy SIII Jelly Bean...
  2. Samsung Galaxy S Plus Samsung Galaxy S Plus is for those who can’t wait...
  3. Samsung Galaxy S III coming The hugely successful Samsung Galaxy family is having a new...

Related posts brought to you by Yet Another Related Posts Plugin.

Read more
Prakash

From TheDroidGuy.

According to Samsung, the Galaxy SIII Jelly Bean operating system tests have passed through the firmware tests and is currently awaiting a few things including a ‘public version of software agreement’ from Google.  There have been no issues in the testing of the SII and Galaxy note Jelly bean so far but they went ahead and said that in case they change their minds on the update, they may roll out a ‘value pack’.  There is no cause for worry on this issue now though considering that the SIII and the Galaxy Note 2 are still the hottest items in the Android market at the moment.

Related posts:

  1. Samsung Galaxy SIII is here After having a very successful Galaxy S II, now samsung...
  2. Samsung Galaxy S III coming The hugely successful Samsung Galaxy family is having a new...
  3. Samsung Galaxy S Plus Samsung Galaxy S Plus is for those who can’t wait...

Related posts brought to you by Yet Another Related Posts Plugin.

Read more
Victor Palau

In my previous entry, I argued that Ubuntu is possibly the best development environment to write connected android apps, thanks to Juju. Although using WordPress was possibly not a great example :) I still think that this idea has legs! Hence, I have decided to build an example project.

The example will mainly  be a simple and plan ToDo list app for Android, that gets its items from a back-end MySQL server.

So here is my list of things to get done for this example project:

  • Proof that you can access a Juju local environment from the Android Emulator
  • Develop a TODO list android app
  • Using a few charms from the charm store plus a custom one, set up a MySQL database that can be exposed through a web service with simple commands/steps
  • Connect the android app and the webservice, so they talk to each other.

And as there is no time like the present, here is the first bullet point!

Accessing a Juju Local Environment from the Android Emulator

As I was working on my wordpress charm, the easiest thing for me to do was to access the local webserver set-up for the blog.  I first installed the Android SDK, which turned out to be pretty easy to do by just following the instructions posted at http://developer.android.com/sdk/index.html . Apart of the sdk tools that download you the emulator, build tools and so on.. you can also choose to use Eclipse as your IDE. If you do this, you can then install an Android plug-in that is *very very* complete.  Having had previous experience with Eclipse, I choose this root and unless you feel very strongly against it, I recommend that you do the same.

Once I had the SDK installed, I run the 2.2 emulator (because that happens to be the version in the spare Android phone that I plan to use later on) and open the local IP address of the WordPress service.  That just worked fine.

Then I decided to create a sample android project and tried some code to do the same. I found that the following method within the main activity of the project was able to ping and then open in a browser window the wordpress app:

private String hostip = "192.168.122.137";

...

public void pingme(View view) {
 TextView info = (TextView) findViewById(R.id.mytext);
 WebView mweb = (WebView) findViewById(R.id.webView1);
 InetAddress in = null;

 Log.w("PING","trying to reach" + hostip);
 info.setText("trying to reach" + hostip);
 in = InetAddress.getByName(hostip);

 if (in.isReachable(5000)) {
   info.append("\nHost found");
   Log.w("FOUND",in.getCanonicalHostName());
 } else {
   info.append("\nHost found");
 }
 mweb.getSettings().setJavaScriptEnabled(true);
 mweb.loadUrl("http://"+hostip);
}

So in a nutshell, the first bullet point (and the easiest) of my list is completed!


Read more