Posts Tagged ‘google’

Here Comes Android Wear, Android for Wearables

March 19th, 2014 2 comments

Google has just unveiled Android Wear, a project that extends Android to wearables, as well as the developer preview. At first, Google will start with watches, but the project may eventually support other wearables. The smartwatch will be smartphone companion with easy access to voice and contextual data.
Google_WearGoogle explains Android Wear will provide timely and useful information such as important social updates, or news. You’ll be able to use the familiar “Ok Google”  to ask questions or complete tasks (call, SMS, alerts…) with your watch, Android Wear devices will be able to act as health and fitness bandsand they’ll also be used a smart remote to voice-control your phone, TV or Hi-Fi. Some of the first devices to use Android Wear will be Motorola Moto 360 and LG G Watch.But Google plans to work with Asus, HTC, and Samsung as well, chip makers Broadcom, Imagination, Intel, Mediatek and Qualcomm, and fashion brands like the Fossil Group to bring watches powered by Android Wear to market later this year.

Google also released Android Wear Developer Preview to let developers experiment with new APIs, and bring new apps to wearables. Development can be done just like with Android in Eclipse or Android Studio, and there’s a specific emulator to try out apps in small squared or rounded display. Since this is a preview only,  this SDK is for development and testing purposes only, not for production apps, as Google may change this Developer Preview significantly prior to the official release of the Android Wear SDK.

You can visit Android Developer’s Wear page for more details.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Categories: Android Tags: Android, google, sdk, smart watch

Selecting the Best Adobe Flash Player in Linux for x86 and ARM

March 17th, 2014 6 comments

I’ve had countless and recurrent crashes caused by Adobe flash plugin either in Firefox and Chromium, mainly while playing videos from YouTube or other online video services that still mostly use flash, instead of HTML5. Adobe flash death is certain, but up to now it has been soooo slow, so I doubt that thing will truly die any time soon, and unfortunately it will probably be with us for many years to come. To work around the issue, I started by enabling Youtube HTML5 player, and try to play embedded videos inside YouTube instead of the orignal website. I still had crashes from time to time, and this method did not help with other video services. So I decided to check out what I could do to fix the issue.

When you go to you can check your flash version, and Adobe will also list the player version for different combination of operating systems and web browsers.

Adobe_Flash_Player_VersionAdobe has stopped provided updated for Linux and Solaris for a while, so Firefox will always be stuck to 11.2.x in Linux. Google has however developed their own Pepper-based Flash Player for Chrome, as Google consider flash (and Java) to be insecure.

There are currently three main options in Linux x86 to support flash:

  • Gnash – GNU Flash, open source version of the player. Found in browser-plugin-gnash package.
  • Adobe flash – Version 11.2. Found in flashplugin-installer or flashplugin-nonfree package. The library is called
  • Google Pepper – Version 12.0. Found in google-chrome-stable package. The flash library is called

Adobe flash and Google Pepper are not compatible, and Mozilla has no intention to implement the Pepper API, at least for now.

In my case, Firefox and Chromium both used Adobe flash library, and both crashed with version 11,2,202,346. I’ve tried to install Gnash with “sudo apt-get install browser-plugin-gnash“, but it did not seem to work. The only remaining option was to use Google Pepper, so I installed Chrome with “sudo apt-get install google-chrome-stable“, and I have to say flash content seems to be pretty stable now. So for Ubuntu on x86 / AMD64, the best option for flash support seems to install Chrome.

If for some reasons you’d like to keep on using the open source Chromium instead of Chrome,. but still make use of the Pepper library, simply edit /etc/chromium-browser/default, and edit CHROMIUM_FLAGS as follows:


You’ll need to install Chrome to get libpepflashplayer. Your libpepflashplayer may be in another location in your computer. To find it, run locate

Go to to verify the version, and you show see:

You have version 12,0,0,77 installed

Let’s have a look at ARM Linux. In Ubuntu, I used to be able to install flash with sudo apt-get install flashplugin-nonfree, but all “flashplugin” packages have now completely disappeared from Ubuntu repository, at least in 13.10. So the only option are Gnash, and Pepper. Gnash can install fine, Adove “About Flash” page returns “You have version 10,1,999,0 installed”, but I was enabled to play any YouTube videos. Chrome is not available for ARM, at least not via the Ubuntu repositories, so we need to use Chromium with extracted from Chrome OS in the Samsung ARM Chromebook.

The guys behind Radxa Rock have just released Android, Ubuntu, and dual boot images for the board, and the Linux images (Linaro 13.11 Desktop – Lubuntu) happen to support Instead of modifying /etc/chromium/default, they’ve changed /usr/bin/chromium-browser script with the following:

/usr/bin/chromium-browser-bin --ppapi-flash-path=/usr/lib/ --ppapi-flash-version= --ppapi-flash-args=enable_hw_video_decode=0,enable_stagevideo_auto=0,enable_trace_to_console=0

Adobe “About Flash” page returns “You have version 11,5,32,0 installed”, which confirms this is not Adobe flash for ARM, although it may not be the latest version (12.0). It does not work, but since hardware decode is not available in Linux, performance is poor. A 360p video plays OK within YouTube, but if you zoom or switch to full screen I get about one frame per second. Other flash content appears to be rendered just fine.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Google’s Project Tango Phone Prototype Generates Real-time 3D Maps

February 21st, 2014 No comments

Google ATAP (Advanced Technology and Products), the team who is currently working on Project Ara for Google, and recently moved from Motorola following the acquisition by Lenovo, has also been busy on another project called Tango, which centers around a phone equipped with cameras and sensors capturing 250,000 data points per second to track motion and generate 3D maps in real-time.


The prototype is 5” phone with hardware and software customization designed to simultaneously track the 3D motion of the device, and creating a 3D map of the environment. The device runs Android and includes development APIs to provide position, orientation, and depth data to standard Java, C/C++ Android. This is still early development, but the team imagine the technology could be used to easily create a 3D map of your home, facilitating furniture shopping. Other usa cses include indoor navigations, visually-impaired aid, and product location in a store. Augmented reality games could also leverage the technology. In some ways, it remind me of the demo of Intel’s RealSense technology at CES 2014 showing a tablet capture 3D models of physical objects.

The company is now looking for professional developers, incorporated entities or institutions only due to FCC regulations, who can create apps with this technology, and plan to send 200 prototype development kits to selected companies. They have allocated units for projects in the areas of indoor navigation/mapping, single/multiplayer games that use physical space, and new algorithms for processing sensor data, as well as some units for others applications.  Kits will be sent by March 14th, 2014.

You can find more application about the project, and/or apply for a development kit on ATAP Tango page.

[Update: The hardware is based on Movidius Myriad 1 Mobile Vision Processor. Source :]

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Categories: Android, Hardware, Video Tags: atap, google, sensor, smartphone

Yacy P2P Non-Tracking Search Engine and YaCyPi Linux Distribution for Raspberry Pi

January 17th, 2014 9 comments

With the revelations by Edward Snowden of NSA’s large scale spying programs, people have become more and more aware that there’s very little privacy online, and in 2013 several companies have tried to solve this online privacy issue, by launching services and products such as Onion Pi and Safeplug Tor Server, or even the recently announced privacy-focused Blackphone. One of the best way to get tracked is to use Google or Bing search engines, which use your search data to deliver relevant ads. Yacy, a peer-to-peer search engine, tries to solve this issue. You can install it on your computer, and you’ll soon be able to run YaCyPi on your Raspberry Pi.

Google_vs_YacyThe search engine is described as follows:

YaCy is a free, as in open source, search engine that anyone can use to build a search portal for their intranet or to help search the public internet. When contributing to the world-wide peer network, the scale of YaCy is limited only by the number of users in the world and can index billions of web pages. It is fully decentralized, all users of the search engine network are equal, the network does not store user search requests and it is not possible for anyone to censor the content of the shared index. We want to achieve freedom of information through a free, distributed web search which is powered by the world’s users.

You can download it for Windows, Linux and Mac OS. I’ve given it a try in Ubuntu 13.10. Here are the stepin a terminal, but step could just be done the same way from the Desktop environment by downloading, extracting, and running script. OpenJDK 6.0 must be installed.

tar xzvf yacy_v1.66_20131205_9294.tar.gz
cd yacy

You can then go to your web browser, and type http://localhost:8090 to access your very own search engine:YacyMy very first search was “cnx software’, and it was kind of disappointing, as this very blog was not listed at all, and results mostly  irrelevant with all links pointing a store selling “CNX” shoes. A search for “Android” did not result much better results, as the very first page strangely links to

So YaCy is no Google contender for now, but keep in mind this is a P2P search engine. if you’ve ever used Bit-torrent, you know that if there are very few seeders, downloads are painfully slow, but with many seeders, download throughput is amazingly fast. YaCy currently has few users so search results are very poor, but as more people use it, it will hopefully improve exponentially.

[Update: Since I've written this post, "CNX Software" search now returns in second position, and "Android" returns so you may have to give it at least few minutes before results become more relevant].

If you want to test it for a few days before deciding to keep it or uninstall it, you may want to add YaCy script to your start menu. For Ubuntu, follow those instructions.

If you’d like to get a 24/24h dedicated server for YaCi, and further contribute to the project, you could back for YaCyPi on Kickstarter. YaCyPi is Linux distribution running YaCy for the Raspberry Pi based on Puppy Linux, and a $25 pledge will get you an SD card pre-loaded with YaCyPi. Other pledges are also available including a full Raspberry Pi with a YaCyPi SD card, cables, and a case for $100.

Thanks to Onebir for the tip.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Marvell Unveils ARMADA 1500 Plus (88DE3108) SoC for Android and Linux Smart Video Platforms

December 5th, 2013 3 comments

Armada_1500_PlusBuilding on top of it ARMADA 1500 SoC for Google TV, Marvell has recently announced the ARMADA 1500 Plus (88DE3108) HD secure media processor SoCdesigned for smart video products based on Android 4.2.2, and Linux, such as media players, OTT boxes, hybrid set-top boxes and smart TVs.

ARMADA 1500 Plus features two ARM Cortex A9 cores, Vivante GC1000 and GC300 GPUs, respectively for 3D and 2D graphics,  and integrates an HDMI receiver and Gigabit Ethernet.

Hisense will be among the first to use the platform with the upcoming H6 Smart TV and Pulse Pro set-top-box, but details have yet to be released for these two products.

Here are the key features of 88DE3108 SoC:

  • Processor – Dual core Cortex A9 with over 6000 Dhrystone MIPS
  • Dedicated 3D and 2D graphics acceleration – dual threaded unified shader (Vivante GC1000 and GC300) with support for OpenGL ES 1.1/2.0 and DirectFB.
  • Video
    • vMeta Video Codec – Decoding: H.264, VC-1, MPEG2, AVS, VP8 and several other formats. Real-time encoding: H.264, VP8 to allow the platform to function as a multi-screen source device.
    • Marvell Qdeo video post processing engine for improved HD and 3D video quality
  • Audio – Support for HE-AACv2, Dolby HD, DTS-HD, SRS and other high-end audio formats.
  • Trusted Video Path certified security engine with the following DRM/CAS options: Verimatrix, Widevine, Playready, NDS VGC, DTCP-IP
  • Hybrid architecture – Multiple TS inputs supports PayTV Operators STB requiring both broadcast (DVB-T,C,S) and IP content deployment.
  • Peripherals – HDMI 1.4a, SATA 2.0, SDIO, 2x USB 2.0 host, 10/100/1000M Ethernet MAC with RGMII interface, and more
  • Support for Google services for Smart TVs based on Android Jelly Bean 4.2.2
ARMADA 1500 Plus (88DE310) Block Diagram

ARMADA 1500 Plus (88DE3108) Block Diagram

Marvell ARMADA 1500 Plus appears to be very similar to the older Marvel ARMADA 1500, except the company switch to ARM Cortex A9 cores instead of using its own ARMv7 implementation, it may have added Vivante GC300 for 2D graphics (TBC), fast Ethernet has been upgraded to Gigabit Ethernet, the SATA version has apparently been downgraded to SATA 2.0, and HDMI got an upgraded to v1.4a (vs 1.4). The rest of the SoC appears to be more or less the same according to the block diagrams.

Marvell also provides smart TV and STB reference designs with a complete Android TV and Linux SDK supporting PayTV and OTT services, and including device drivers, schematics, layout files and other documentation. The platforms support Marvell Wi-Fi (2×2 802.11ac) and Powerline ( technologies.


Typical Set-top Box System based on Marvell 88DE3108

Further information may be available on Marvell ARMADA 1500 Plus page.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Google’s Portable Native Client Builds Architecture Independent Executable for Portability, and Better Performance

November 13th, 2013 4 comments

Native Client (NaCl) allows to build native C and C++, and runs it in the browser for maximum performance. Applications such as photo editing, audio mixing, 3D gaming and CAD modeling are already using it. The problem is that you have to build the code for different architecture such as ARM, MIPS or x86. To provide a portable binary, Google announced the Portable Native Client (PNaCl, pronounced pinnacle), which “lets developers compile their code once to run on any hardware platform and embed their PNaCl application in any website”.

Instead of compiling C and C++ code directly to machine code, PNaCl generates a portable bitcode executable (pexe), which can be hosted on a web server. Chrome then loads this executable, and converts it into an architecture-specific machine executable (native executable – nexe) optimized for the device where the code runs.

Bullet physics simulators (Shown below) and Lua interpreters are two applications that already leverage PNaCl.

Bullet_PhysicsIf you click on one of the 2 links above, you’ll notice it will only work with Chrome 31 and greater, and other browsers will require pepper.js, a “JavaScript library to enables the compilation of native Pepper applications into JavaScript using Emscripten”. This is supposed to work with Firefox, Internet Explorer, Safari, and other browsers.

Google hosts a page comparing NaCl and PNaCl, to explain the differences, and help make the right choice. PNaCl is now the preferred toolchain, but it comes with limitations which means you may have to use NaCl instead:

  • PNaCl does not support architecture-specific instructions such as assembly. Future editions of PNaCl will attempt to mitigate this problem by introducing portable intrinsics for vector operations.
  • Only static linking with the >newlib C standard library is supported, not dynamic linking nor glibc. This will be fixed in future releases.
  • C++ exception handling are currently not supported
  • Vector types and SIMD are currently not supported
  • Some GNU extensions are unsupported such as  taking the address of a label for computed gotos, or nested functions.

If your application is in the open web, NaCl is not an option, and you’ll have to use PNaCl instead.

You can find more information, and getting started with the native client SDK, on NaCl and PNaCl developers’ page.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Categories: Programming Tags: C/C++, chrome, google, optimization

Google Announces LG Nexus 5 Smartphone with Android 4.4 KitKat

November 2nd, 2013 No comments

Google has partnered with LG and Nestle to bring to market the latest Nexus 5 smartphone featuring Android 4.4 “Kitkat”, the latest, and brand new, release of Android. Let’s first have a look at the device, and then we’ll go through the new features and improvement brought by Android 4.4.

LG Nexus 5

Google_Nexus_5Nexus 5 has the following technical specifications:

  • SoC – Qualcomm Snapdragon 800 @ 2.26GHz with Adreno 330 GPU @ 450MHz
  • System Memory – 2GB RAM
  • Storage – 16 to 32 GB flash, but no microSD slot
  • Display – 4.95″ touchscreen display with 1920×1080 resolution, Gorilla Glass 3
  • Connectivity – Dual band 802.11a/b/g/n/ac WiFi (2.4G/5G), Bluetooth 4.0, NFC, and GPS
  • Celullar Networks – 2G/3G/4G LTE. GSM, CDMA, WCDMA, and LTE in North America, and GSM, WCDMA, and LTE for the rest of the world.
  • Camera – 8MP rear camera with Optical Image Stabilization (OIS) and 1.3MP front camera
  • Video Output -  HDMI output (via SlimPort)
  • Audio – Built-in speaker, 3.5mm stereo audio connector, dual microphones.
  • USB – microUSB
  • Sensors – GPS, Gyroscope, Accelerometer, Compass, Proximity/Ambient Light, Pressure, Hall (Magnetometer)
  • Misc – Power and volume buttons
  • Battery – 2300 mAh with talk time up to 17 hours, standby time up to 300 hours, internet use time up to 8.5 hours on Wi-Fi, and up to 7 hours on LTE. Supports wireless charging.
  • Dimensions – 69.17×137.84×8.59 mm
  • Weight – 130g

The phone is available in black or white color, and in the US, costs $349 (16GB flash version) or $399 (32GB version) on Google Play. The device can also be purchased in Canada, U.K., Australia, France, Germany, Spain, Italy, Japan and Korea, but residents from other countries will have to wait a little longer.

You can find more information on Google Nexus 5 page.

What’s new in Android 4.4 Kitkat

Android_KitKatAs a side note, If you don’t have the cash to buy the Nexus 5, Google announced upcoming KitKat support for several older devices including Nexus 4, Nexus 7, and Nexus 10, as well as the Samsung Galaxy S4 and HTC One Google Play Edition devices. It may also be possible to get beta Android 4.4 “ROMs” earlier for your device from sites like XDA Developers Forums. The factory image for Nexus 5 is already available here.

Android 4.4 brings several performance optimizations and new features for developers:

  • Memory Optimization and Debugging Tools
    Android 4.4 has been designed to run smoothly on devices with as little as 512 MB RAM. Google has optimized low level software and middleware such as the kernel and Dalvik, but also apps including Chrome, and YouTube.
    procstats tool has been added to monitor memory use over time, with run times and memory footprint for foreground apps and background services (more at the end of the post). The meminfo tool has been enhanced to make it easier to spot memory trends and issues.
  • New NFC Capabilities through Host Card Emulation
    Host Card Emulation (HCE) allows any app on an Android device to emulate an NFC smart card, without needing a provisioned secure element (SE) in the device. The only thing needed is an NFC controller in the device.
  • Printing Framework
    Android apps can now print any type of content over Wi-Fi or cloud-hosted services such as Google Cloud Print. The framework also allows printer manufacturers to develop their own print services that can be distributed via Google Play.
  • Storage access Framework
    This new framework provides a standard UI to let users browse and open documents, images, and other files across all of their preferred document storage providers (local or cloud storage).

  • Low-power sensors

    • Sensor batching – Hardware sensor batching is an optimization to reduce the power consumed during sensor activities. This is particularly useful for low-power, long-running use-cases such as fitness, location tracking, monitoring, etc.. This feature is hardware-dependent, and currently (only?) works on the Nexus 5.
    • Step Detector and Step Counter – Android 4.4 also adds platform support for two new composite sensors: step detector and step counter. These let your app track steps when the user is walking, running, or climbing stairs, and they are implemented in hardware for low power consumption. Currently available in Nexus 5.
  • SMS Provider – The new SMS provider and APIs define a standardized interaction model for all apps that handle SMS or MMS messages.
  • New ways to build apps
    • Full-screen Immersive mode – It’s now possible to run an app full screen, without status and navigation bar. A swipe from the top or bottom edge of the screen can bring back the system UI.
    • Transitions framework for animating scenes – The transitions framework lets developers define scenes, typically view hierarchies, and transitions, which describe how to animate or transform the scenes when the user enters or exits them.
    • Translucent system UI styling
    • Enhanced notification access - Listener services can access a notification’s actions as well as new extras fields — text, icon, picture, progress, chronometer, and many others.
    • Chromium WebView – Webview has been completely redesigned and is now based on Chromium.
  • New Media Capabilities

    • Screen recording – You can now record a video of the action on your phone with the screen recording utility. Started with the command line: adb shell screenrecord or through the DDMS panel in Android Studio.
    • Resolution switching through adaptive playback – Seamless change in resolution during playnack. Useful for MPEG-DASH among other things.
    • Visualization of how the LoudnessEnhancer effect can make speech content more audible.

      LoudnessEnhancer can make speech content more audible.

      Common Encryption for DASH

    • HTTP Live Streaming v7
    • Audio Tunneling to DSP – This lets the DSP handle audio decoding to improve battery life. In the Nexus 5, audio playback time can last up to 60 hours, an increase of over 50% over non-tunneled audio.
    • Audio monitoring – For peak and RMS levels
    • Loudness enhancer – Media playback applications can increase the loudness of spoken content by using the new LoudnessEnhancer effect, which acts as compressor with time constants that are specifically tuned for speech.
    • Audio timestamps for improved AV sync
    • Wi-Fi CERTIFIED Miracast – Android 4.4 does not introduce Miracast, Android 4.2 did that, but I understand devices running Android 4.4 Kitkat with be considered “Miracast compatible”, and a new menu has been added in Settings > Developer options > Wireless display certification.
  • RenderScript Compute

    • Performance improvement compared to Android 4.3 – No need to recompile the app
    • GPU acceleration – Available on Nexus 5, Nexus 4, Nexus 10 and Nexus 7 (2013), and coming to more devices.
    • RenderScript in the Android NDK – Native code can now leverage Renderscript thanks to a new C++ API.
  • Graphics - SurfaceFlinger has been upgraded to OpenGL ES 2.0 from OpenGL ES 1.0, and the Hardware Composer now supports virtual displays.
  • New Types of Connectivity

    • Two New Bluetooth profiles - Bluetooth HID over GATT (HOGP) gives apps a low-latency link with low-power peripheral devices such as mice, joysticks, and keyboards. Bluetooth MAP lets your apps exchange messages with a nearby device, for example an automotive terminal for handsfree use or another mobile device.
    • IR Blasters – For TV / STB control
    • Wi-Fi TDLS support – Seamless way to stream media and other data faster between devices already on the same Wi-Fi network by supporting Wi-Fi Tunneled Direct Link Setup (TDLS).
  • Accessibility

    • System-wide settings for closed captioning – Users can now go to Settings > Accessibility > Captions to set global captioning preferences, such as whether to show captions and what language, text size, and text style to use.
    • Enhanced Accessibility APIs
  • Support for International Users

    • Drawable mirroring for RTL locales - This allow to reduces the size of the code, but having only one drawable for RTL and LTR languages.
    • RTL pseudo-locale – Android includes an RTL pseudo-locale as a new developer option to make it easier to test and debug layouts.
  • Security Enhancements

    • SELinux (enforcing mode) – Android 4.4 updates its SELinux configuration from “permissive” to “enforcing.” This means potential policy violations within a SELinux domain that has an enforcing policy will be blocked.
    • Two new cryptographic algorithms:
      • Elliptic Curve Digital Signature Algorithm (ECDSA) support has been added to the keystore provider improving security of digital signing, applicable to scenarios such as signing of an application or a data connection.
      • The Scrypt key derivation function is implemented to protect the cryptographic keys used for full-disk encryption.
  • Tools for Analyzing Memory Use

    • Procstats
      Procstats keeps track of how apps are running over time, providing data about their execution durations and memory use to help determine how efficiently they are performing.



      You can access procstats from the adb tool included in the Android SDK, adb shell dumpsys procstats

    • On-device memory status and profiling
      It’s also possible to monitor memory usage directly on the device by going to Settings > Developer options > Process stats


      Process Stats and Use details

      The Process Stats option shows a high-level metrics on your app’s memory use. On the top of the main screen you can see a summary of system memory status. Green indicates relative amount of time spent with low RAM usage, yellow indicates moderate RAM usage, and red indicates high (critical) RAM usage. Below, there’s the list of process with their (relative computed) memory load.
      To see more details about the memory usage of one particular app, tap on it to access the window shown on the right of the image above.

You can find the full details on Android 4.4 Kitkat Developer’s page.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter