Motorola explains Lenovo’s rebranding plan


The announcement yesterday that Lenovo would be phasing out the Motorola name turned quite a few heads in the mobile industry. Some users were confused about what this meant for the future of Motorola and the Moto line. Today, on their official blog, Motorola posted a lengthier explanation of Lenovo’s actions and ensured audiences that the two corporate entities were working together in this endeavor.

The primary thing the company wants to convey is that Motorola Mobility is here to stay as a central part of Lenovo’s corporate architecture. The team, though a wholly owned subsidiary of Lenovo, still has the same people designing and manufacturing devices. The idea is not to get rid of the company as a design entity, but rather to simplify branding of Lenovo products. In a sense, the distinction between Motorola and Moto has become rather meaningless, so while the team looks like it will still internally be referred to as Motorola Mobility, the full name will begin to vanish from devices.

The ‘batwing’ logo that used to represent the company as a whole will remain as it transitions into representing the Moto line, which will continue production alongside Lenovo’s own brand of Vibe. The idea is to create a line of high-end devices developed by the subsidiary team and marketed as Moto alongside a line of budget devices that will wear the Vibe brand.

This post is ensuring fans that this rebranding is a change in marketing, not a change in product development or design. Prior to being purchased by Google in 2012 and subsequently Lenovo in 2014, Motorola was one of the largest names in the mobile industry, especially through the mid-2000’s. Lenovo, although a large name in the computer industry, is not as recognizable in the mobile field and is seeking to parlay Moto’s brand recognition into better sales for their products across the board.

What are your thoughts of this explanation of how these things are shaking out? Let us know in the comments below!


US Cellular is running a new promo plan: 6GB for $40 and $300 for switchers

US Cellular logo

We don’t hear as much about US Cellular as we do the other major carriers. Verizon, AT&T, T-Mobile, and Sprint, but the nation’s fifth largest carrier is making a push to change that. In a bid to expand their customer base, the Chicago-based CDMA service provider is looking to sweeten the deal by offering a 6GB data plan for only $40 per month.

However, this plan does involve a two-year contract. The trend in the industry is currently seeing the big four moving away from contracts, so you might want to consider your options carefully before making a commitment all the way through 2018. If you’re opening a new line of service with US Cellular, they’re sweetening the deal by sending you a $150 promotional card. They’ll send you another $150 if you’re transferring your number from a different service provider, so that means US Cellular wants your business to the tune of $300.

To get the full scoop on what US Cellular is bringing to the table, click the button below to read the press release they sent out earlier today. As always, before swapping to a new carrier, you should make sure that service will be available in the areas you frequent.

So, that’s how US Cellular is kicking off the New Year. What do you guys think? A tempting offer, or not sweet enough for you? What would it take for you to throw in your lot with US Cellular? Let us know in the comments below!

Hands on with the fashion focused LG K10 and K7

LG is known for delivering striking design in its flagship devices but this hasn’t always translated to the same in its lower offerings. The company is seeking to change this and build on the success of its L series by introducing a new K series, which aims to offer a combination of striking design and reasonable specs at an affordable price tag.

A subtle design with rounded edges

Both new smartphones are made of plastic and feature a fairly subtle design with rounded edges and sides. The K10 is the better of the two devices and features a 5.3 inch 720p display. Under the hood it comes with 2GB RAM, 16GB internal storage and depending on the market, either a quad core or an octa-core processor.


The K10 runs on Android 5.1 Lollipop and is powered by a 2300mAh removable battery. The back features a 13MP camera and depending on the market you buy the K10 in, you’ll get either a 5MP or an 8MP front selfie camera. The handset will be available in White, Indigo and Gold.

The K7 is the lower-end of the two devices and comes with a 5 inch FWVGA in-Cell Touch (LTE) or On-cell Touch (3G) display. It’s powered by a quad-core processor with either 1.5GB RAM and 16GB storage or 1GB RAM and 8GB storage.


On the front there’s a 5MP camera while on the back, you’ll get either an 8MP or 5MP camera depending on which version of the K7 you buy. The K7 also runs Android 5.1 Lollipop out of the box, has a 2045mAh removable battery and will be available in white, black or gold colours.

LG says both phones are designed for the fashion focused consumer and both devices also feature LG’s trademark rear power and volume button combination beneath the camera. Both devices come with 2.5D Arc Glass which LG claims makes for a smooth and seamless experience and this is bolstered by the placement of the buttons on the rear.

there is demand for stylish yet affordable smartphones and the K series definitely fits the bill

The new devices are certainly not a replacement for any of LG’s existing flagship devices but as the company found with its L-series, there is a lot of demand for a functional and stylish yet affordable smartphone and the K series definitely fits the bill.

What do you think of the LG K7 and K10 and do you plan to buy either? Let us know your views in the comments below!

10 best action games for Android!

best Android Action Games
Action games are among the most popular on any platform. They get the blood pumping, the fingers moving, and it’s a great way to test your reflexes and wits. There are a variety of action games out there, including shooters, fighting games, adventure games, platformers, and more which makes narrowing it down a little difficult. Nevertheless, here are the ten best action games on Android!

BADLAND best action games for androidBADLAND

[Price: Free with in-app purchases]
BADLAND was one of the best action games released on mobile in 2013. It’s a 2D infinite runner with simple, but beautiful graphics, a simple premise, and easy game play. You must dodge obstacles and continue forward before the ever scrolling screen swallows your character. There are currently more than 100 levels, a full co-op mode, and updates in late 2015 gave players the ability to make their own levels which they can then share with other players around the world. It’s free to download so you can try it before you buy the full version and it’s a game that just keeps on giving.


Half Life 2 best action games for androidHalf-Life 2

[Price: $9.99]
Half-Life 2 may be the purest shooter left on Android. It’s a full port of the PC version which is currently only available for NVIDIA Shield devices right now. It offers superior graphics, a decently long campaign mode, and there is even an expansion you can pick up for an additional $7.99. Anyone who has played Half-Life 2 before can tell you that the game ramps up the action almost constantly and there are no in-app purchases to get in the way. If you have an NVIDIA Shield device, you should buy this game.


into the dead best action games for androidInto the Dead

[Price: Free with in-app purchases]
Into the Dead is a 3D infinite runner action game where you’re caught in the zombie apocalypse and you must run to survive. You’ll be given weapons but otherwise it’s just you as you wade through a seemingly endless hoard of zombies that are trying to kill you. The game graphics use a lot of silhouettes and darkness which helps keep the atmosphere dark and foreboding. It’s an excellent time waster and one that should keep you going for a while.


injustice gods among us best action games for androidInjustice: Gods Among Us

[Price: Free with in-app purchases]
Injustice: Gods Among Us is a fighting game that features a large cast of DC’s most popular comic book characters. It includes some basic fighting game mechanics along with super powers that are integrated into the controls as special moves to make each character unique and interesting. On top of the basic game mechanics, you can battle online against other folks using parties of three and you’ll be able to upgrade each of your characters to make them more powerful. There is a lot of game here and it’s worth checking out.


implosion best action games for androidImplosion – Never Lose Hope

[Price: Free / $9.99]
Implosion is a hack-and-slash action game with pretty decent graphics. It takes place in a futuristic world where you must slay mutants, monsters, and various types of creatures both mechanical and non-mechanical. The controls are easy enough to use and the game does have a pleasant flow with plenty of action and mayhem to enjoy. The free version includes the first six levels with the rest unlocking after you purchase the full game as an in-app purchase. It also has Google Play Games cloud saving which is just cherry on top of an already sweet cake.



Grand Theft Auto: San Andreas best action games for androidGrand Theft Auto (any of them)

[Price: $4.99-$6.99]
Grand Theft Auto is arguably the largest sandbox game available on Android. Anyone who has played a Grand Theft Auto game knows what to expect here with car chases, shootouts, fighting, driving, dodging police, and taking down rivals all being par for the course in these games. The controls are a little clunky on mobile devices and will require a bit of a learning curve before you’ll feel comfortable, but otherwise these games work really well, have tons of content, and look pretty decent as well. Click the button below to check out all of Rockstar’s offerings!


Modern Combat 5 Blackout best action games for androidModern Combat 5: Blackout

[Price: Free with in-app purchases]
The Modern Combat series helped define what a shooter should be on Android. It contains easy controls, decent graphics, online multiplayer, a leveling system, and, of course, a campaign mode. You’ll be able to choose between six classes based on how you want to play with each class possessing their own unique traits and abilities. You can level up through single player and multiplayer which is a nice plus. The in-app purchases get in the way a little bit like many of Gameloft’s games do, but the execution is otherwise very good.


pewdiepie legend of the brofist best games for androidPewDiePie: Legend of Brofist

[Price: $4.99]
PewDiePie: Legend of Brofist exploded into the scene back in 2015 and was one of the most popular paid games of the year. It’s a 2D action game that borrows mechanics from a variety of genres, including platformer, shooter, and more. It features tons of pop culture and gaming references and you can even unlock other popular YouTubers. There are a ton of levels, boss fights, secret treasures, and pretty everything a retro action game would ever need to be awesome. Of course, there are no in-app purchases.


Sonic the Hedgehog 2 best action games for androidSonic the Hedgehog

[Price: $2.99]
Sonic the Hedgehog was one of the original action games available on any platform. The game focuses on speed as you get from the beginning to the end of each level, collecting rings, and avoiding certain death. There are also boss fights! Sonic 1 and Sonic 2 are available on mobile right now as well as Sonic 4 episodes 1 and 2 that all hold true to the original Sonic ethos. They’re a lot of fun and even bring a bit of nostalgic value to the mobile gaming world. They’re also pretty cheap with no in-app purchases!
Check out all of the Sonic the Hedgehog games here!


unkilled best action games for androidUNKILLED

[Price: Free with in-app purchases]
UNKILLED is a title done by MADFINGER GAMES, the same developers who brought us Dead Trigger and Shadowgun. In this action-fueled zombie shooter, you take down mass amounts of zombies using a variety of weapons, fend off bosses, and play in over 300 missions and counting. The graphics are some of the best we’ve seen on mobile and those with a Tegra X1 device will get a little bit extra in the graphics department as well. It’s a great mix of shooter and time waster and it’s definitely worth a shot.


Google making Elvis Presley’s ‘30 #1 Hits’ free in honor of the King’s birthday (US Only)


Are you an Elvis fan? Even if you’re not, now’s a great chance to become one! In honor of his birthday, January 8th, Google Play is handing out free copies of Elvis Presley’s 30 #1 Hits.

This singer, actor, and cultural icon turned the music industry on its head when he unleashed his upbeat fusion of country music and rhythm and blues on the world. His sexually charged performances worried parents, terrified television producers, and won over generations of young Americans through the 50’s, 60’s, and beyond. His musical legacy and influence can still be seen throughout pop music, rockabilly, and rock and roll even into the current day. Even if you’re not a fan of his music, his 30 highest rated songs should probably be on your to-listen list just for cultural education purposes.

We don’t have any word yet as to whether or not this promo will extend beyond this musical legend’s birthday, so if you want to get your hands on it, you should probably act fast. Click the button below to grab your copy of Elvis Presley’s 30 #1 hits.

As seems to be the case with many of Google Play’s deals, this one may only be available to US residents. If you’re someone checking in from outside the states, let us know!

What are your thoughts of this deal? It’s hard to turn down free, so if you’re giving this offer a pass, let us know why in the comments.

(Update) The title has been changed to reflect that this offer is only available in the US. A regretful thanks goes out to the overseas commenters who confirmed our suspicions. 

John Perzow of the WPC gives us the lowdown on how wireless charging will change our lives

This week at CES 2016, John Perzow, vice president of marketing development for the Wireless Power Consortium, gave us a walkthrough of how wireless charging is changing our everyday lives. Perzow begins by showing us all the places where wireless charging stands can keep our devices fully juiced, from the bedside table, to the kitchen, to the car. He demonstrated how companies like Facebook and Google have integrated wireless charging directly into workstations so employees can simply set their smart devices on the desk while they work for a full charge.

After this, our own Joshua Vergara interviewed Perzow, asking for his perspective on what wireless charging will look like in the future. Perzow describes a world in which devices never die because charge stations are ubiquitous. This would allow for smaller batteries, which would make room for more tech to be crammed into tinier spaces. Perzow believes that in the future, the concept of overcharging will be non-existent. Our phones will have smaller batteries that don’t hold a charge for as long, but we won’t really notice because our phones will be constantly charging all throughout the day.

The two went on to talk about wireless charging power banks and how phones might be better designed in the future supposing an infrastructure of charging stations was available to support our day to day existence. For full details, give the video a watch! As always, please give us your feedback in the comments below, and don’t forget to click this shiny orange button to see all the rest of our CES 2016 coverage.

Top Android performance problems faced by app developers


From a traditional “software engineering” point of view there are two aspects to optimization. One is local optimization where a particular aspect of a program’s functionality can be improved, that is the implementation can be improved, speeded-up. Such optimizations can include changes to the algorithms used and the program’s internal data structures. The second type of optimization is at a higher level, the level of design. If a program is badly designed it will be hard to get good levels of performance or efficiency. Design level optimizations are much harder to fix (maybe impossible to fix) late in the development lifecycle, so really they should be resolved during the design stages.

When it comes to developing Android apps there are several key areas where app developers tend to trip-up. Some are design level issues and some are implementation level, either way they can drastically reduce the performance or efficiency of an app. Here is our list of the top 4 Android performance problems faced by app developers:


Most developers learnt their programming skills on computers connected to the mains electricity. As a result there is little taught in software engineering classes about the energy costs of certain activities. A study performed by Purdue University showed that “most of the energy in smartphone apps is spent in I/O,” mainly network I/O. When writing for desktops or servers, the energy cost of I/O operations is never considered. The same study also showed that 65%-75% of energy in free apps is spent in third-party advertisement modules.

The reason for this is because the radio (i.e. Wi-Fi or 3G/4G) parts of a smartphone use a energy to transmit the signal. By default the radio is off (asleep), when a network I/O request occurs the radio wakes up, handles the packets and the stays awake, it doesn’t sleep again immediately. After a keep awake period with no other activity it will finally switch off again. Unfortunately waking the radio isn’t “free”, it uses power.

As you can imagine, the worse case scenario is when there is some network I/O, followed by a pause (which is just longer than the keep awake period) and then some more I/O, and so on. As a result the radio will be use power when it is switched on, power when it does the data transfer, power while it waits idle and then it will go to sleep, only to be woken again shortly afterwards to do more work.

Rather than sending the data piecemeal, it is better to batch up these network requests and deal with them as a block.

There are three different types of networking requests that an app will make. The first is the “do now” stuff, which means that something has happened (like the user has manually refreshed a news feed) and the data is needed now. If it isn’t presented as soon as possible then the user will think that the app is broken. There is little that can be done to optimize the “do now” requests.

The second type of network traffic is the pulling down of stuff from the cloud, e.g. a new article has been updated, there is a new item for the feed etc. The third type is the opposite of the pull, the push. Your app wants to send some data up to the cloud. These two types of network traffic are perfect candidates for batch operations. Rather than sending the data piecemeal, which causes the radio to switch on and then stay idle, it is better to batch up these network requests and deal with them in a timely manner as a block. That way the radio is activated once, the network requests are made, the radio stays awake and then finally sleeps again without the worry that it will be woken again just after it has gone back to sleep. For more information on batching network requests you should look into the GcmNetworkManager API.


To help you diagnose any potential battery issues in your app, Google has a special tool called the Battery Historian. It records battery related information and events on an Android device (Android 5.0 Lollipop and later: API Level 21+) while a device is running on battery. It then allows you to visualize system and application level events on a timeline, along with various aggregated statistics since the device was last fully charged. Colt McAnlis has a convenient, but unofficial, Guide to Getting started with Battery Historian.


Depending on which programming language you are most comfortable with, C/C++ or Java, then your attitude to memory management is going to be: “memory management, what is that” or “malloc is my best friend and my worse enemy.” In C, allocating and freeing memory is a manual process, but in Java, the task of freeing memory is handled automatically by the garbage collector (GC). This means that Android developers tend to forget about memory. They tend to be a gung-ho bunch who allocate memory all over the place and sleep safely at night thinking that the garbage collector will handle it all.

And to some extent they are right, but… running the garbage collector can have an unpredictable impact on your app’s performance. In fact for all versions of Android prior to Android 5.0 Lollipop, when the garbage collector runs, all other activities in your app stop until it is done. If you are writing a game then the app needs to render each frame in 16ms, if you want 60 fps. If you are being too audacious with your memory allocations then you can inadvertently trigger a GC event every frame, or every few frames and this will cause you game to drop frames.

For example, using bitmaps can cause trigger GC events. If the over the network, or the on-disk format, of an image file is compressed (say JPEG), when the image is decoded into memory it needs memory for its full decompressed size. So a social media app will be constantly decoding and expanding images and then throwing them away. The first thing your app should do is re-use the memory already allocated to bitmaps. Rather than allocating new bitmaps and waiting for the GC to free the old ones your app should use a bitmap cache. Google has a great article on Caching Bitmaps over on the Android developer site.

Also, to improve the memory foot print of your app by up to 50%, you should consider using the RGB 565 format. Each pixel is stored on 2 bytes and only the RGB channels are encoded: red is stored with 5 bits of precision, green is stored with 6 bits of precision and blue is stored with 5 bits of precision. This is especially useful for thumbnails.

Data Serialization

Data serialization seems to be everywhere nowadays. Passing data to and from the cloud, storing user preferences on the disk, passing data from one process to another seems to all be done via data serialization. Therefore the serialization format that you use and the encoder/decoder that you use will impact both the performance of your app and the amount of memory it uses.

The problem with the “standard” ways of data serialization is that they aren’t particularly efficient. For example JSON is a great format for humans, it is easy enough to read, it is nicely formatted, you can even change it. However JSON isn’t meant to be read by humans, it is used by computers. And all that nice formatting, all the white space, the commas and the quotation marks make it inefficient and bloated. If you aren’t convinced then check out Colt McAnlis’ video on why these human-readable formats are bad for your app.

Many Android developers probably just extend their classes with Serializable in a hope to get serialization for free. However in terms of performance this is actually quite a bad approach. A better approach is to use a binary serialization format. The two best binary serialization libraries (and their respective formats) are Nano Proto Buffers and FlatBuffers.

Nano Proto Buffers is a special slimline version of Google’s  Protocol Buffers designed specially for resource-restricted systems, like Android. It is resource-friendly in terms of both the amount of code and the runtime overhead.


FlatBuffers is an efficient cross platform serialization library for C++, Java, C#, Go, Python and JavaScript. It was originally created at Google for game development and other performance-critical applications. The key thing about FlatBuffers is that it represents hierarchical data in a flat binary buffer in such a way that it can still be accessed directly without parsing/unpacking. As well as the included documentation there are lots of other online resources including this video: Game On! – Flatbuffers and this article: FlatBuffers in Android – An introduction.


Threading is important for getting great responsiveness from your app, especially in the era of multi-core processors. However it is very easy to get threading wrong. Because complex threading solutions require lots of synchronization, which in turn infers the use of locks (mutexes and semaphores etc) then the delays introduced by one thread waiting on another can actually slow your app down.

By default an Android app is single-threaded, including any UI interaction and any drawing that you need to do for the next frame to be displayed. Going back to the 16ms rule, then the main thread has to do all the drawing plus any other stuff that you want to achieve. Sticking to one thread is fine for simple apps, however once things start to get a little more sophisticated then it is time to use threading. If the main thread is busy loading a bitmap then the UI is going to freeze.

Things that can be done in a separate thread include (but aren’t limited to) bitmap decoding, networking requests, database access, file I/O, and so on. Once you move these types of operation away onto another thread then the main thread is freer to handle the drawing etc without it becoming blocked by synchronous operations.

All AsyncTask tasks are executed on the same single thread.

For simple threading many Android developers will be familiar with AsyncTask. It is a class that allows an app to perform background operations and publish results on the UI thread without the developer having to manipulate threads and/or handlers. Great… But here is the thing, all AsyncTask jobs are executed on the same single thread. Before Android 3.1 Google actually implemented AsyncTask with a pool of threads, which allowed multiple tasks to operate in parallel. However this seemed to cause too many problems for developers and so Google changed it back “to avoid common application errors caused by parallel execution.”

What this means is that if you issue two or three AsyncTask jobs simultaneously they will in fact execute in serial. The first AsyncTask will be executed while the second and third jobs wait. When the first task is done then the second will start, and so on.

The solution is to use a pool of worker threads plus some specific named threads which do specific tasks. If your app has those two, it likely won’t need any other type of threading. If you need help on setting up your worker threads then Google has some great Processes and Threads documentation.


There are of course other performance pitfalls for Android app developers to avoid however getting these four right will ensure that you app performs well and don’t use too many system resources. If you want more tips on Android performance then I can recommend Android Performance Patterns, a collection of videos focused entirely on helping developers write faster, more efficient Android apps.