Tag Archives: Android

[repost ]Getting Started with Android

original:http://blog.pdftron.com/2013/08/09/getting-started-with-android/

Introduction

PDFNet Mobile SDK for Android brings the full power of the PDFNet library to Android devices. The SDK ships with simple to use Java APIs that allow developers to seamlessly integrate PDF viewing, creation, searching, annotation, and editing capabilities with their Android apps. This document will explain how to download the SDK, describe its basic components, step you through creating a simple PDF viewing app, and point you towards helpful resources. It is organized into the following sections:

First Steps
Creating a basic PDF viewer
Adding support for Annotations, Text Selection and Form Filling
Opening encrypted documents
FAQ
Additional Resources


First Steps

Pretty simple: just download the SDK for Android, available by request on the PDFTron website, and run the PDFViewCtrlDemo application (please follow the instructions on the readme document included in the package).

first

The PDFViewCtrlDemo sample application showcases a basic PDF viewer, where it is possible to perform annotations (lines, arrows, free text, sticky notes, etc.), fill forms, zoom in/out, browse bookmarks, highlight/underline text, navigate the document with different presentation modes and much more. Feel free to browse the project and see how the control is used in the layout xml file, or how you can initialize it programmatically.

annot_example

Ok, the sample app is fantastic! But how do I use the SDK with my app?

Before proceeding, it’s worth knowing what makes up the core components of PDFNet for Android. Typically you only need to include 4 items in your project:

PDFNet.jar

This jar file contains all the JAVA APIs available to be used by your application. You can find the documentation online or in the “docs” folder of the SDK package.

libPDFNetC-v7a.so

This file contains the core functionality of PDFNet and it is the heart of the SDK. The file is built separately for each architecture, and currently it is available for ARM, ARM-v7 and x86. (The example above uses only the ARM-v7 version of the library to keep the final APK size to a minimum. See “How can I reduce the size of the final APK file?” for more information.)

pdfnet.res

This file contains standard PDF resources that must be included to ensure all PDF documents will display correctly. Please check “What is the pdfnet.res file?” for more information on the resource file.

Tools Library

The preceding files are sufficient for viewing PDF documents. The Tools library adds support for text selection, interactive annotation creation and editing, form filling and link following. Please check “What is the Tools library?” for more information.

Creating a basic PDF viewer

Now that you understand the components of the SDK, let’s build a bare bones PDF viewing app. As secondary steps we will also add support for annotation creation and editing, and opening encrypted documents.

In this example we will use Eclipse with ADT, along with Android API revision 18, however if you are already comfortable with another IDE then feel free to use it as well. A completed version of the project can be found on our GitHub repository,

Displaying a PDF

1. Create a new Android project and add the required PDFNet files

Start with a blank Android project, using com.pdftron.android.tutorial.pttest as the package name. Go to the properties of your project and check that the Android build target is set to API 18.

Next we need to add the required PDFNet files to the project (it is assumed that you already downloaded the SDK package, which contains the required files. If not, please check the First Steps section at the beginning of this document):

  • Copy PDFNet.jar from the downloaded package’s “lib” folder to the “libs” folder of your project;
  • Copy libPDFNetC-v7a.so from the downloaded package’s “lib\standard\armeabi-v7a” to the project’s “libs\armeabi-v7a” folder (note that you might need to create this folder on your project);
  • Copy pdfnet.res from the package’s “resource” folder to the project’s “res\raw” folder;
  • Add a PDF document named “sample_doc.pdf” to the “res\raw” folder (you can use the one available on the GitHub repository).

Your project should look like the screenshot below:

fourth

For this project we will add only the ARM-v7 library (to keep the final APK file to a minimum size), but you could also add the ARM and x86 variants to their respective folders, “libs\armeabi” and “libs\x86” (see “How can I reduce the size of the final APK file?” for more information about using the libraries).

2. Add a layout for our activity

Now let’s add a layout called main.xml into the “res\layout” folder which will contain the PDFViewCtrl element:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <pdftron.PDF.PDFViewCtrl
        android:id="@+id/pdfviewctrl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical|horizontal" />
</RelativeLayout>

3. Add code to show PDF

Now create a new class that extends android.app.Activity called PTTestActivity, using the package com.pdftron.android.tutorial.pttest:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package com.pdftron.android.tutorial.pttest;
import java.io.IOException;
import java.io.InputStream;
import pdftron.Common.PDFNetException;
import pdftron.PDF.PDFDoc;
import pdftron.PDF.PDFNet;
import pdftron.PDF.PDFViewCtrl;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
public class PTTestActivity extends Activity {
    private PDFViewCtrl mPDFViewCtrl;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Initialize the library
        try {
            PDFNet.initialize(this, R.raw.pdfnet);
        } catch (PDFNetException e) {
            // Do something...
            e.printStackTrace();
        }
        // Inflate the view and get a reference to PDFViewCtrl
        setContentView(R.layout.main);
        mPDFViewCtrl = (PDFViewCtrl) findViewById(R.id.pdfviewctrl);
        // Load a document
        PDFDoc doc = null;
        Resources res = getResources();
        InputStream is = res.openRawResource(R.raw.sample_doc);
        try {
            doc = new PDFDoc(is);
            // Or you can use the full path instead
            //doc = new PDFDoc("/mnt/sdcard/sample_doc.pdf");
        } catch (PDFNetException e) {
            doc = null;
            e.printStackTrace();
        } catch (IOException e) {
            doc = null;
            e.printStackTrace();
        }
        mPDFViewCtrl.setDoc(doc);
    }
    @Override
    protected void onPause() {
        // This method simply stops the current ongoing rendering thread, text
        // search thread, and tool
        super.onPause();
        if (mPDFViewCtrl != null) {
            mPDFViewCtrl.pause();
        }
    }
    @Override
    protected void onResume() {
        // This method simply starts the rendering thread to ensure the PDF
        // content is available for viewing.
        super.onResume();
        if (mPDFViewCtrl != null) {
            mPDFViewCtrl.resume();
        }
    }
    @Override
    protected void onDestroy() {
        // Destroy PDFViewCtrl and clean up memory and used resources.
        super.onDestroy();
        if (mPDFViewCtrl != null) {
            mPDFViewCtrl.destroy();
        }
    }
    @Override
    public void onLowMemory() {
        // Call this method to lower PDFViewCtrl's memory consumption.
        super.onLowMemory();
        if (mPDFViewCtrl != null) {
            mPDFViewCtrl.purgeMemory();
        }
    }
}

4. Configure the manifest file

The last step is to configure the manifest file to start our PTTestActivity. Change the AndroidManifest.xml to the content below:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    package="com.pdftron.android.tutorial.pttest"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:hardwareAccelerated="true" >
        <activity
            android:name="PTTestActivity"
            android:windowSoftInputMode="adjustPan" >
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

5. Run the app

Now if you build and run the sample project on a device or emulator, you will be able to scroll and zoom pages (pinch or double tap to zoom).

firstrun_screenshot

Adding support for Annotations, Text Selection and Form Filling

PDFNet comes with built-in support for text selection, interactive annotation creation and editing, form filling and link following. These features are implemented using PDFNet’s Android API, and are shipped in a separate library, PDFViewCtrlTools (see “What is the Tools library?” for more information).

To add support for annotations, text selection, etc, you need to reference the Tools library in your project. Since the Tools needs to link to the Android v7 appcompat library, we first need to add this project to our workspace. For that, please follow the instructions in Support Library Setup, section “Adding libraries with resources”. Once you have it properly installed, let’s then open PDFViewCtrlTools in Eclipse:

  • In Eclipse, to to “File -> New -> Other…”  and choose “Android Project from Existing Code”.

  • Choose the PDFViewCtrlTools folder (you will find it in the SDK package, along with the other samples) as the root directory and click “Finish”.

  • Right click the project and open the Properties window.

  • Under the “Android” property, in the “Libraries” section, click “Add…”

  • The next dialog should show all the libraries opened in the workspace, and appcompat should be listed as one. Select it and click “OK”.

  • Since the tools reference PDFViewCtrl class, you will have to move the PDFNet.jar from the PTTest to the tools project (you don’t need to keep two copies of the PDFNet.jar). Place it in the “libs” folder.

  • Make sure you can compile the PDFViewCtrlTools project without errors.

Now back to PTTest project:

  • Right click the project and open the Properties window.
  • Under the “Android” property, in the “Library” section, click “Add…”.
  • The next dialog should show all the libraries opened in the workspace, and PDFViewCtrlTools should be listed as one. Select it and click “OK”.
  • Now the “Library” section should show the PDFViewCtrlTools in the list, with a green marker.

At this point you should be able to build your project again. Make sure it compiles without errors (note that sometimes you will need to trigger the build action more than once so Android will generate the intermediate files appropriately).

Add the call to set the tool manager just after the call to findViewById(R.id.pdfviewctrl):

1
2
3
4
5
// Inflate the view and get a reference to PDFViewCtrl
setContentView(R.layout.main);
mPDFViewCtrl = (PDFViewCtrl) findViewById(R.id.pdfviewctrl);
mPDFViewCtrl.setToolManager(new pdftron.PDF.Tools.ToolManager());

You are now ready to build and run the project again. Now, when you run the project, you can select text, follow links and create and edit annotations. To create a new annotation, long press on an area of the document without text to trigger a popup with annotation types to create. This behavior is shown in the below screenshot:

screenshot_with_tools

Opening encrypted documents

PDFNet supports opening encrypted PDF documents. If you try to open an encrypted document, PDFViewCtrl will pop up a dialog to request the password from the user. If you would like to implement your own interface or system for acquiring the password, you can first initialize the PDFDoc’s security handler before passing it to the PDFViewCtrl. An example of this is shown following code snippet after creating the PDFDoc in order to display an encrypted PDF:

1
2
3
4
if (!doc.initStdSecurityHandler("the password")) {
    // Wrong password...
    return;
}

On the GitHub repository you will find a sample PDF document which is encrypted so you can test it with the application.

FAQ

What is the Tools library?
What are the differences between the “Standard” and “Full” libraries?
How can I reduce the file size of the final APK?
What is the pdfnet.res file?
How do I configure my ProGuard configuration file to properly obfuscate PDFNet?
How do I handle fonts on Android?
How do I add views/widgets on top of PDFViewCtrl?

What is the Tools library?

PDFNet comes with built-in support for text selection, interactive annotation creation and editing, form filling and link following. These features have been implemented using two interfaces from PDFViewCtrl (PDFViewCtrl.ToolManager and PDFViewCtrl.Tool), and are shipped in a separate Android library project, PDFViewCtrlTools. This library also contains an implementation of a floating quick menu to access all these functionalities, a basic slider to navigate through pages and a text search toolbar.

With the source code of the library developers have complete flexibility and control to customize how users interact with the PDF. More information on how the tools work and how to customize them for your app can be found in our documentation and in our knowledge base:

http://www.pdftron.com/pdfnet/mobile/Javadoc/pdftron/PDF/PDFViewCtrl.ToolManager.htmlhttp://www.pdftron.com/pdfnet/mobile/Javadoc/pdftron/PDF/PDFViewCtrl.Tool.html

How make use of the PDFNet Android PDFViewCtrl’s Tool and ToolManager interface:

https://groups.google.com/d/msg/pdfnet-sdk/fG-20n1gcPU/4Zslh603PZ8J

What are the differences between the “Standard” and “Full” libraries?

The SDK package includes two versions of the native libraries: standard and full.

In order to help our customers to create applications with a smaller file size, the standard version omits the following rarely used features (which are present in the full version):

  • Convert, Optimizer, Redactor and Flattener classes;
  • PDF/A validation/conversion;
  • Converting PDF pages to TIFF and PNG formats (ie, PDFDraw will not work when using these formats).

Rendering speed and quality are the same for both versions of the library.

How can I reduce the file size of the final APK?

The SDK is available for different architectures (ARM, ARM-v7 and x86) as well a trimmed down version of the API (known as the “standard libraries”, described above). This allows the developer to choose whichever library combination is the best for the project based on its requirements. Let’s see some use cases below.

One APK for all architectures

The recommended approach in this case is to use the all 3 architectures of the standard version of the libraries along with one instance of the resource file pdfnet.res. Android automatically use the correct library based on the device’s architecture when installing the APK:

all_libs

Multiple APK support

If the APK file size is a very important requirement for your project, the best solution is to create different APK files for each architecture and then use Google Play’s Multiple APK Support. In this case you need to generate three different APK files and use Google Play’s Developer Console in advanced mode to upload them:

separate_libs

Here is a file size comparison between some different configurations based on the PTTest application (using version 6.0.0 of the SDK):

Standard (PDFNet.jar, Tools library, standard native lib, pdfnet.res)

All libraries

12,877 KB

ARM only

6,199 KB

ARM-v7 only

6,093 KB

x86 only

6,613 KB

Full (PDFNet.jar, Tools library, full native lib, pdfnet.res)

All libraries

20,391 KB

ARM only

8,484 KB

ARM-v7 only

8,319 KB

x86 only

9,617 KB

More info:

Multiple APK Support and supported architectures when using Google Play:

https://groups.google.com/d/msg/pdfnet-sdk/P7WENbAaasI/hZyhdCI4pzYJ

What is the pdfnet.res file?

This file contains fonts, CMaps and other standard PDF resources that are needed for the correct displaying of generic PDF documents (e.g., forms, text, free text annotations). If your documents are largely images and do not have text or annotations, then it may not be necessary. There are two ways to properly use this file in your project:

  1. PDFNet.initialize() method includes an extra parameter that can be used to load the resource file from the application bundle. For example:

1
PDFNet.initialize(this, R.raw.pdfnet);

This method will copy the file from “res/raw/pdfnet.res” to the private storage area of the application, and an exception will be thrown if there is no sufficient space to save the file, or if the resource ID can’t be found. Please note that the resource file must be named “pdfnet.res” when using this approach.

  1. You can call PDFNet.initialize() without the resource parameter, and use:

1
PDFNet.setResourcesPath(“path/to/resources/file”);

With this method you are handling installation of the resource file on your own. For example, the resource file can be downloaded on demand and saved at any location. When the resource file is ready for use it can be loaded using setResourcesPath().

How do I configure my ProGuard configuration file to properly obfuscate PDFNet?

Due to the nature of the SDK in using native and managed code, you will need to tell ProGuard not to obfuscate some classes. You need to include the following in your config file:

-keep class pdftron.PDF.PDFViewCtrl$RenderCallback { *; }
-keep class pdftron.PDF.PDFViewCtrl$PrivateDownloader { *; }
-keep class pdftron.PDF.PDFViewCtrl$LinkInfo { *; }
-keep class pdftron.Filters.CustomFilter$CustomFilterCallback { *; }
-keep class pdftron.PDF.ProgressMonitor { *; }
-keep class pdftron.SDF.ProgressMonitor { *; }

How do I handle fonts on Android?

Are your documents not showing special characters (ie, umlaut)? Are you trying to enter a free text annotation and the text does not contain all the characters? Are some of the characters being rendered as squares when a form is filled?

When the PDF document does not have all the fonts embedded, PDFNet tries to find the most appropriate font available on the system. Depending on the device, the manufacturer and the Android version, your system probably may not have a font that has the missing character/glyph. In this case you can use:

1
PDFNet.addFontSubst(int ordering, String fontpath);

The ordering specifies which character map coverage will be matched to use the specified font (as pointed by the fontpath argument). To substitute a missing font in PDF (which the family name is not known beforehand), you can use the e_Identity ordering. If this mapping is added to PDFNet, for any missing fonts with Unicode mappings, it will use whatever is mapped with e_Identity.

For example, by doing:

1
PDFNet.addFontSubst(e_Identity, "/system/fonts/DroidSansFallback.ttf");

any missing fonts in PDF that uses Unicode character codes will use the DroidSansFallback.ttf as the substitute font.

More info:

https://groups.google.com/forum/#!searchin/pdfnet-sdk/android$20addfontsubst

How do I add views/widgets on top of PDFViewCtrl?

Since PDFViewCtrl extends a ViewGroup, it is possible to add views or widgets on top of a page programmatically using PDFViewCtrl.addView(…). One important point when using this approach is that you will have to set the layout of the view to be inserted (i.e., view.layout(…)), since PDFViewCtrl does not handle the views like a LinearLayout or RelativeLayout. Also, depending on your requirements you will have to extend PDFViewCtrl to be able to override the touch event methods and perform actions on the view(s) added.

Another option is to use a different view/layer and position it on top of PDFViewCtrl through the layout xml file.

More info:

https://groups.google.com/d/msg/pdfnet-sdk/s99GQwKiRLc/0XSO6OHuVrUJ

Additional Resources

Samples

Included in the SDK package you will find the PDFNetSDKSampleDemo application. This app showcases the samples available online through an interface where you can select the sample, run and see the results. Note that this app will only work for tablet devices.

Knowledge Base

Browse our public forum for more information about PDFNet:

https://groups.google.com/forum/#!forum/pdfnet-sdk

Android related posts can be found using:

https://groups.google.com/forum/#!searchin/pdfnet-sdk/android

Support

If you think you have encountered a bug, or issue, with PDFNet, you can submit a ticket. Simply fill out the following form:

http://www.pdftron.com/support/reportproblem.html

[repost ]Android app tutorials

original:http://www.creativebloq.com/app-design/how-build-app-tutorials-12121473

Building your first Android app

This tutorial teaches you how to build your first Android app. You’ll learn how to create an Android project and run a debuggable version of the app. You’ll also learn some fundamentals of Android app design, including how to build a simple user interface and handle user input.

Develop an Android app: video tutorials

This handy ‘playlist’ of Android development tutorials will take you through everything from downloading the SDK to putting your app on the market.

Create your first Android mobile app

app tutorials

A very short beginner introduction tutorial, this shows you how to create a mobile app for Android. The tutorial is based on API Level 17 and Android 4.2. Starting from scratch, you should have a mp/h to km/h converter at the end.

Build your first Android app

Build your first Android app

This tutorial gets you started with Android development without requiring you to wade through pages of technical documentation. At the end, you’ll have written a simple Android app and you will be able to deploy the application onto an emulator or a real Android device.

How to build an Android app

There are two techniques that you can use to produce Android applications with a PC. The first uses the Android Software Development Kit (SDK). This lets you write raw code and helps you get it working in the Android environment. The second uses App Inventor, a Google Labs tool that’s still in beta. This tutorial demonstrates how to go about doing both.

How to develop an Android app

app tutorials

In this four-part tutorial, you’ll learn the basics of developing an app for Android. A perfect starting point for any beginner, the series will explain the programming terminology used as well as any strange acronyms.

HelloWorld application using Android Studio

Google recently announced a new IDE for Android called Android Studio. This tutorial explains how to install Android Studio on your Windows 7 machine and create a new HelloWorld application.

How to install Android SDK

App tutorials

Learn how to to install the Android software development kit and set up your development environment for the first time.

Getting To Know The Android Platform

Getting To Know The Android Platform

This article explains what you need to do to build a scalable app that looks and feels right at home on Android, how to test it and your options for distributing it. After reading this article, you should have a good understanding of what kinds of decisions and challenges you will face when creating an Android app.

Advanced Android

Designing For A Maturing Android

app tutorials

Around 480 million people currently use Android devices, and one million new devices are activated daily. Learn your market with this introduction to a maturing Andriod app audience.

Android Google Maps

In this tutorial, senior software engineer Ilias Tsagklis explains how to incorporate Google Maps into an Android app.

Design an Android app user interface

Design an Android app user interface

Android apps can be just as beautiful as their iOS counterparts. Richard Leggett, co-director of Bitmode Ltd, digs deep into the styling and theming and explains how to use just XML and image files to add a fresh look and feel to your app.

Automate your app testing

Automate your app testing

Don’t trust humans to do all of your testing – not even experts. John Senner, Koa Metter, and Emory Myers of MokaSocial reveal how to delegate the dirty work.

Build a photo sharing app for Android

app tutorials

In this step by step tutorial you’ll build SnapStack, a photo sharing application, from start to finish. Building SnapStack on StackMob you’ll build a feature-filled app that includes User Authentication, S3 integration and more.

Unit testing with Android Studio

If you plan on doing test drive development for your Android Studio mobile projects, you will want to learn the main points of how to create and use Unit Tests in the post-Eclipse world of Android development. Rex St. John outlines all you need to know.

[repost ] The 100 Best Android Apps of 2013:Lifestyle, Travel, Shopping

original:http://www.pcmag.com/article2/0,2817,2403174,00.asp

Lifestyle, Travel, Shopping

 

EasilyDo
Free

If you’re the forgetful type, EasilyDo is your savior. Once you hook the app up to a slew of supported social and calendar services, it suggests simple actions from a unified dashboard. Did you know it’s Susie’s birthday? EasilyDo will suggest to send her a message and even include a gift. It makes the little things easier, and proves its worth with saved time.

 


 

Field Trip 
Free
Part amateur historian, bargain hunter, and gourmet, Field Trip alerts you to articles, deals, and factoids relating to the world around you. Once activated, it keeps tabs on your location and displays cards drawing from sources like Zagat, Scoutmob, Arcadia, and others. Perfect for tooling around a strange city or learning more about your hometown.

 


 

ESPN Scorecenter

ESPN Score Center
Free
ESPN’s free app lets you check the game quickly, and discreetly when necessary (i.e., with your phone under the dinner table), for your favorite teams in more sports than most other apps. It can pull game data from baseball, basketball, American football, the sport the rest of the world calls football (soccer), ice hockey, cricket, rugby, and more. For stat lovers,ScoreMobile is a fine option, but only if it has the sport you follow, as it misses a few, like rugby and boxing, that ESPN covers.

 


 

FXcamera

FxCamera
Free
Not every smartphone running Android has a great camera, so get better photos with the help of a little software. The free app FxCamera adds filters and effects, like “toy” and fisheye lens, to enhance even modest pictures. It also helps to arm yourself with some additional tips for getting better photos from your phone.

 


 

GateGuru

Free
GateGuru (for Android) is an app to pack. It helps you navigate airport terminals, anticipate wait times, find the freshest airport food, and travel with greater confidence. It also has airport maps and checkpoint wait times. And GateGuru integrates with Tripit and Kayak for flight details, as well as Foursquare, Twitter, and Facebook for sharing.

 


 

Google Goggles 
Free

Similar in some ways to the Layar app, Google Goggles is an augmented reality experience that layers additional information from the digital world onto the physical world. Use the phone’s camera to take a snapshot of anything from a painting in a museum to a placard that’s written in a language you don’t understand, and Google Goggles will give you more clues to help you figure out what’s in front of you, or why it’s important.

 


 

Groupon
Free
Some of the deals that crop up on Groupon are just too good to pass up, like 50 percent off that take-out place where you eat once a week anyway, or a one-month gym membership for 20 bucks. The Groupon Android app lets you not only snag deals, but cash them in, too, so you don’t have to print any paper vouchers or coupons.

 


 

Google Offers
Free
Google Offers for Android is the mobile companion to Google’s daily deals site. For a relative latecomer to the Groupon-forged category, its offerings are surprisingly solid (I bought a 50 percent discount to Katz’s Deli’s online store). The app itself is very slick and making transactions is seamless for Googlebots who use other Google services.

 


 

iOnRoad Augmented Driving

Free
This driving app uses your smartphone’s camera and GPS sensors to warn you of upcoming collisions. It’s innovative and actually works, but not foolproof. You still have to keep your eye on the road.

 


 

Kindle

Kindle
 
Free
Read books, magazines, and newspapers right on your Android phone without ever buying an e-reader. The Kindle app is by far the most popular reading app in the Android Marketplace because it gives you access to buy or download for free hundreds of thousands of books, and more than 100 different newspapers and magazines. And while some users have complained that they can’t uninstall Kindle once they’ve downloaded the app, it is possible (but it takes a little effort).

 


 

MLB.com at Bat 12
$9.99
A premium account lets you stream every MLB game live. You also get a repository of baseball goodness: game highlights, radio broadcasts, pitch trackers, detailed reporting, widget. For Android 2.2 and 2.3 users (probably most of you) the live video feed requires Adobe Flash, a plug-in that Adobe removed from Google Play in August. So if you didn’t already have it downloaded, you won’t be able to watch live games.

 


 

Layar
Free
Layar is an augmented reality app, meaning it gives you extra information from the digital world “layered” on top of something real in this world. Point it at a landmark, and the app will share interesting facts about the destination. Layar works best when you think of it as a travel app. It works very well in big cities and top destinations, but can be middling or even useless in lesser-traveled spots.

 


 

Noom Weight Loss Coach 
$9.99/month
Noom is a comprehensive weight loss app that bills itself as a weight loss coach in your pocket. Every day, the app feeds you customized suggestions on how many calories you need to eat and burn to meet your goals. This involves a calorie counter, a daily Noom score, and an online community for additional support.

 


 

NASA App
Free
Consider it the next best thing to being an astronaut or astronomer. The official NASA app features thousands of NASA photos (gorgeous as wallpaper), streaming videos, and countdown clocks.

 


 

Pixlr-o-matic
Free
iPhone-wielding Instagram users think we’re “polluting” their photo streams? Screw them. Android has Pixlr-o-matic, a far superior photo editing app with hundreds of effects and a much smoother social sharing experience. The randomnizer, which chooses a random effect for you, provides hours of fun.

 


 

Yelp

Yelp
Free
As the most comprehensive review app, Yelp is an invaluable tool for finding businesses nearby, especially when you’re in a town you don’t know well. The quality of the reviews can be touch and go, but for finding businesses and services, and vetting out ones that are very poorly received, Yelp’s the app you need.

 


 

Flickr
Free
Though it languished for years, Flickr is back with a slick new app and a terabyte of free storage space for your photos—well and beyond what anyone else is offering. Throw in a bunch of Instagram-like filters and on-the-go editing and you’ve got a powerful mobile photo app.

[repost ] The 100 Best Android Apps of 2013:Music and Video

original:http://www.pcmag.com/article2/0,2817,2395053,00.asp

Music and Video

 

DeaDBeef Player
Free
This audiofile-approved music player supports numerous file formats, last.fm scrobbling, gapless playback, Internet radio, and an equalizer with 10 bands. Download the free plugin to get ALAC and WP4 playback.

 


 

Google Music
Free
Apple, Amazon, and Google have all launched music storage lockers. However, Google’s decision to base its free storage option not on size but on number of tracks make it unique among its competitors. With the app, users can stream music they’ve uploaded and, when connected to Wi-Fi, download songs for offline listening. Best of all, Google has gone out of its way to make sure the Music service plays nice with whatever system you’re using at home.

 


 

Netflix

Free, subscription fees apply
The go-to app for streaming movies and TV shows, Netflix puts an enormous library of content at your fingertips. Though its catalog isn’t always consistent in terms of quality, its sheer size and low cost ($7.99 for unlimited streaming and an additional $7.99 for a DVD rental plan as well) make it a must-have app. Be sure to connect to a Wi-Fi network for the best viewing experience.

 


 

Movies

Movies by Flickster
Free
A strong offering for the movie buff on the go, Movies by Flickster keeps you up to date on the latest releases both at the box office and on DVD. Flickster’s app also gives you easy access to Rotten Tomatoes reviews and trailers, and it can even help you book your next movie outing or add movies to your Netflix queue for a night in. Though it has a few quirks, Movies is a valuable asset.

 


 

Pandora Internet radio

Free, optional upgrade to PandoraOne for $36 per year
The granddaddy of smart, streaming music apps, Pandora has come a long way from its humble origins. The latest version of the app focuses on social aspects, showing you what your friends are currently rocking out to. Though it has a full spectrum of visual, audio, and video ads, Pandora still does a great job of seamlessly delivering you music.

 


 

SnapPea

Free
Working with a desktop application, SnapPea is the dead-simple way to move audio and video between your computer and your phone. While it’s great at handling media files, it can do a lot more, including manage your apps, photos, and even send text messages from your computer.

 


 

Spotify
Free with $9.99/month Spotify Premium
I don’t even download music anymore. I pay $9.99/month for Spotify Premium, which instantly streams music from a 15+ million catalogue, create playlists, integrate local libraries, and check out other members’ playlists. With Premium you can sync playlists to your Android device and play music offline, on the go. The app’s interface is a minimalist adaptation of its desktop client.

 


 

Stitcher Radio
Free
While there are a number of apps to keep your ears full of music, fewer focus on radio and podcasts. Stitcher is one such app, which lets you organize channels of content based on interests. It’s even clever enough to notice what you like and dislike, and will assemble “Smart Stations” based off your preferences. If you’re a podcast junkie, this app is essential.

 


 

Ted Talks
Free
This unofficial TED app lets you search a video database containing over 1,200 TED presentations even if your device is not connected to the Internet. Alternatively, you can listen to the TedTalks radio-style audio stream, and bookmark and share videos on Facebook.

 


 

Uberhype for Hype Machine
Free
Uberhype is the mobile version of Hype Machine, beautifully designed by Dirty Water Labs. For the uninitiated, Hype Machine is a fantastic Web-based music streaming service that aggregates trending music from music blogs. Most of the songs are genre mash-ups. It combines a Twitter-like social sharing element as well.

 

 

Songkick Concerts
Free

There are plenty of apps to put music on your phone, but not many to get you and your phone in front of live music. Enter Songkick Concerts, which scans your phone for music and then informs you when artists you like are coming to town. It’s a really easy way to keep track of tricky live tour schedules in your town, or anywhere else you might be. —Next: Games >

[repost ] The 100 Best Android Apps of 2013:Social

original:http://www.pcmag.com/article2/0,2817,2395052,00.asp

Social

 

Badoo
Free
Badoo isn’t known as the “flirting app” for nothing. Badoo uses your phone’s GPS to locate other members in your area, displaying their Badoo profiles which contain likes, dislikes, and photos. You can use the app to chat with other members and arrange offline meetings. Badoo boasts more than 140 million members around the world.

 


 

Facebook

Facebook for Android

Free
Social networks thrive with a reliable app, and Facebook’s for Android is solid. The Android app has the quintessential Facebook-branded interface but some unique functionality that’s absent in Facebook’s iPhone app, such as a side-scrolling preview pane of recently shared photos in the dashboard area.

 


 

Gibberbot
Free 
Armed with the right software, it’s pretty easy for someone to tap into your cell-phone network and read all the text messages and chatting you’re doing over your device. Gibberbot obscures all this data so that it looks like “gibberish” to a hacker. This free, open-source chat client offers fully encrypted chatting over Gchat, Facebook, and Jabber. Must be used in conjunction with Orbot, the official Tor client for Android.

 


 

Google+

free
Social networks need mobile apps to thrive, and Google+’s is a fine start for the platform that arrived in July 2011. The app taps into conventions established by other online social networks, like Facebook and Twitter, while finding some of its own strengths at the same time. Google+ Mobile works fairly well, due to a smart design and comprehensible interface.

 


 

Instagram
Free

The most robust photo sharing social network, recently acquired by Facebook for $1 billion, finally came to Android after a two years of iPhone-only love. Instagram for Android lets you put folksy filters on dull photos with a single tap, and quickly share them on Twitter, Facebook, and Tumblr.

 


 

Snapseed

Snapseed 
Free
While Instagram may have cornered the market for filtered photo-sharing on the fly, Snapseed offers much deeper photo editing tools for free. While not quite as powerful as Photoshop, Snapseed can bring a whole new level to pictures on your mobile device.

 


 

Pinterest
Free
Social corkboard site Pinterest landed on Android and iOS devices this month, so you can access your account on the go. For the uninitiated, Pinterest is another popular network of ways to discover, collect, and share “beautiful things you find on the Web.”

 


 

Plume
Free
Plume is, hands-down, the best Twitter client for Android. Recently updated for Android 4.0 Ice Cream Sandwich, Plume uses the horizontal, column-based stream seen in many Twitter clients. However it adds a home tab with widgets to access Trends, Lists, Favorites, and Search bar. There’s also plenty of room for customizing your interface, from font size to the color of your timeline.

 


 

WordPress
Free
WordPress is one of the most popular blogging platforms, boasting over 25 million software downloads and 15,000 plug-ins. If you wish to blog while away from your computer, this WordPress app will let you do just that, but on your Android phone. Bloggers can quickly create drafts, edit posts, and approve comments without the need for a Mac or PC.

 


 

Tumblr
Free
Tumblr is another popular microblogging platform that lets users quickly share and caption photos, quotes, chats, links, and more. Its app recently received an interface makeover that makes updates even easier.

 


 

Vine
Free

Let me be emphatically clear: Vine is not a great app. It is, however, a great service that lets you shoot and share six second, endlessly looping videos. Six seconds may not seem like much, but Vine can be used to make everything from tiny movies to miniature animations. On Android, its potential is held back by some weird audio issues, and the inability to toggle between the front and rear facing cameras. Once the developers lick these (and other) problems, Vine will be a great app for Android. —Next: Music and Video >

[repost ] The 100 Best Android Apps of 2013:Communication

original:http://www.pcmag.com/article2/0,2817,2393103,00.asp

Communication

 

Google Voice
Free
Google Voice offers low-cost international voice calls and unlimited free text messages for a unique Google Voice phone number. An update in November adds group text messaging, offline voicemail, and “improved” text message notifications.

 


 

GO SMS Pro
Free
Go SMS Pro is the SMS/MMS app for power Android users. You can send “short” messages containing text, voice, doodles, and photos. There’s a lot of room for tinkerers to customize themes, messages, and folders for storage.

 


 

ICQ Mobile for Android

Free
Gen X-ers and a few Y’s will recall ICQ, perhaps the first instant messaging program to seriously blow up when it launched back in 1996. It disappeared just as quickly, but now it’s back with a new mobile focus. ICQ for Android lets you send unlimited messages for free, chat with ICQ, Facebook, and Google Talk friends, and read messages offline.

 


 

IMO

IMO Instant Messenger
Free
Multi-purpose instant message apps can falter on mobile phones, crashing frequently or draining the phone’s battery. While it’s not perfect, IMO Instant Messenger is by far one of the lesser offenders. Another reason it’s better than some others is it supports instant messaging across an impressive 11 networks (both popular and relatively obscure) including MSN, Yahoo!, AIM/ICQ, Google Talk, Myspace, Skype, Facebook, Jabber, imo, VKontakte, and Hyves.

 


 

Oovoo

ooVoo Video Calls

Free
Stable and reliable video chat apps for Android aren’t easy to come by, but ooVoo is terrific. The Android video chat app supports group video, voice calls, and instant messaging—across iOS, OSX, Android, and Windows! Not only do you get solid Android video calling, but you can practically video chat with anyone.

 


 

Skype
Free
It’s hard to beat a free, extensive communications network. Skype uses your phone’s front- and rear-facing cameras to place free video and voice calls over 3G or Wi-Fi. I don’t think Skype is “the best” communication app for Android, but it’s one of those tools that I will continue to use because other people use it, too, and so it’s often the quickest way to get in touch with certain people.

 


 

WhatsApp Messenger
Free 
Send unlimited text, photo, audio messages to anyone in the world, as long as both of you are connected to the Internet. Its UI may not be as slick as KakaoTalk, but it’s hugely popular and multi-platform (talks to your iOS and BlackBerry friends).

 


 

Viber: Free Messages & Calls

Free
Viber distinguishes itself from other free voice and texting apps, like Google voice, by adding in your computer as a communication device. From your Android, you can seamless transfer a voice call to the Viber PC app and keep talking, or pick up a text message conversation already in progress. With a growing list of fans, Viber is well positioned to make talking and texting a little easier (and cheaper!). —Next: Social >

[repost ] The 100 Best Android Apps of 2013:Productivity/Organization

original:http://www.pcmag.com/article2/0,2817,2393102,00.asp

Productivity/Organization

 

any.do
Free

There are lots of apps for making lists of tasks, but any.do is easily among the most stylish. In addition to its simple interface, it brings easy organization and built-in syncing between devices. A new feature called any.do moment that encourages you to review your to-do lists, hopefully making organization a habit. A great choice for anyone looking to Get Organized.

 


 

Bump

Bump
Free

Bump lets two users tap their phones together to immediately share photos, contacts, and apps. Amazingly, it works cross-platform between iOS and Android users as well.

 

 

Box
Box is a more secure version of Dropbox. Like the latter, Box lets you sync and store your files “in the cloud” and access them from another Internet-connected device or PC. Box also encrypts your stored files and requires a passcode for when the app times out. New users qualify for a 50MB promotion.

 


 

Catch Notes
Free, additional Spaces for $4.99 per month
A note-taking and organizational app with style, Catch Notes is like a high-design version of Evernote. Users create notes, reminders, photos, checklists, and recordings which can then be organized into notebook-like “spaces.” Catch keeps these creations synced among all your devices, and it’s accessible through a Web interface as well. If you’re tired of drab ol’ Evernote, Catch Notes is a must-have.

 


 

Dropbox
Free, additional space available
The original cloud storage service, Dropbox has a clean, sleek Android app that rivals the iPhone version in terms of style. Dropbox’s terms are pretty well known: the free version will allow you to have up to 2GB of files seamless synched between devices and stored online. The app puts all those files at your fingertips, easily allowing you to view, download, and share what you need when you need it.

 


 

Evernote

Evernote
free; $45 per year for optional Premium subscription
If you weren’t an Evernote early adopter, the freemium note-taking and organization app that synchs all your files to a cloud service, there’s no shame in being late to the party. On an Android phone, Evernote works smoothly, looks great, and most importantly, integrates with dozens of other apps and services.

 


 

Google Drive
Free
Long thought to be only a myth, Google Drive is a powerful cloud-based storage locker and basic office suite. With it, you can create and edit documents and have changes synched between multiple devices and users. Google Drive is extremely easy to use and comes with a strong set of sharing options that basically mean you never have to attach a document to an email again.

 


 

LastPass Password Mgr Premium*
Free, $1 per month for mobile use
A powerful password manager that keeps your information safely guarded behind a single password. On Android, LastPass provides access to your password vault, auto-fill forms, secure notes, and a password generator. LastPass can even be used to enter login information for website and apps on your Android device. While it’s a bit difficult to use out of the box, a quick read of the online documentation will have you bending passwords to your will.

 


 

Pageonce Free or $4.99 for gold 
If you’re looking for a more robust, fresh alternative to Mint.com, check out this true mobile wallet from a startup in Palo Alto. Pageonce securely stores all your cards, reminds you of when to pay bills, and even supports bill payments for $0.30 per transaction. If money management stresses you out, Pageonce makes it all so much easier.—Next: Communication >