developement

Rss feed of the tag

Taming the LogCat (part 3)

Written by Xavier Gouchet - 31 january 2014 - no comments

Those who have used the adb tool might have stumbled upon the following message :


$ adb logcat
     - waiting for device -
     error: more than one device and emulator

In such case, you need to find, then specify the device's serial like this :



$ adb devices -l
    List of devices attached 
    XXX900AKC2             device usb:3-1.3 product:falcon model:XT1032 device:falcon_umts
    XXXBDAD913017009       device usb:1-1   product:yakju  model:Nexus  device:maguro

$ adb logcat -s XXXBDAD913017009

Here I used the logcat command but it's the same thing when you want to install an apk or pull a file from a device.

I've just discovered that if you don't specify a serial, adb will look for an environment variable named ANDROID_SERIAL to know which device to use. If you're often using several devices in USB, you can just add the following aliases to your .bashrc file.


# ANDROID DEVICES SERIAL NUMBERS
alias adb-use-galaxy-nexus='export ANDROID_SERIAL=XXXBDAD913017009'
alias adb-use-moto-g='export ANDROID_SERIAL=XXX900AKC2'
alias reset-android-serial='unset ANDROID_SERIAL'

When using the adb logcat command, you can also set in the ANDROID_LOG_TAGS environment variable a list of tag/severity filter, like in the following example.


# suppresses all log messages except those with the tag "ActivityManager", at priority "Info" or above, and all log messages with tag "MyApp", with priority "Debug" or above
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"

These tips are fully compatible with the PidCat tool I talked about earlier.

Secret Phone number

Written by Xavier Gouchet - 14 august 2013 - no comments

So maybe you already know that some secret phone numbers are hidden in Android. For instance, if you dial *#*#4636#*#* on your Android phone1, you'll access a secret settings panel.

But did you know that you can add this feature in your own android application ? Basically, you can setup a BroadcastReceiver to listen to a secret number and then launch a hidden Activity. This can be used to unlock some beta features or access developper options on your app. Or just add an easter egg to your phone.

To do that, you simply need to declare your BroadcastReceiver in your manifest, like this :

    <!-- Secret receiver -->
    <receiver android:name=".MySecretBroadcastReceiver" >
        <intent-filter>
            <action android:name="android.provider.Telephony.SECRET_CODE" />
            <data
                android:host="1337"
                android:scheme="android_secret_code" />
        </intent-filter>
    </receiver>

After that, you simply need to handle the corresponding Intent in your BroadcastReceiver :


public class MySecretBroadcastReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		if (intent.getAction().equals("android.provider.Telephony.SECRET_CODE")) {
			// Do something in here
		}
	}

}

A developer tool : DevApps Direct

Written by Xavier Gouchet - 29 march 2013 - no comments

This is a somewhat similar app to Android UI Patterns (which I talked about earlier). The aim of DevApps Direct is to list available libraries for Android developpers, with again a live demo feature.

DevAppsDirect

What is really interesting is that it is built around an RSS feed, which you can still follow in any RSS Reader (well, not Google Reader obviously). The app itself will then be able to get new libraries without having to update the app itself.

DevAppsDirect

It will also download the libraries' demo on demand, meaning that it won't use much of your space for nothing. Although it's still in beta, this app is very usefull to test many libraris, and keep some in your favorites

As always, you can download it from the Google Play Store.

A developer tool : Stanley (beta)

Written by Xavier Gouchet - 22 march 2013 - no comments

Recently I needed to know what intents were used by an app on my phone, simply out of curiosity and to learn how to have similar features in one of my app.

There aren't so many way to do this, and so I designed and developped an App to take a look at an App, from a developper point of view. So here it is, in public beta.

Stanley Preview

Stanley can list all package installed on any device, and for any given package, lets one see the Activities, Services, Broadcast Receivers, Content Providers, and more.

More over, it can export the package's original manifest into a readable XML, to see what lies in the intent filters for instance.

It is not yet available on the Play Store, but you can already try it by downloading the APK attached to this post. Any feedback on this app will be welcomed.

Stanley 1.0 (Beta) APK (562 Kb)

Stanley on Google Play

Axel v2.3 : quick actions and clipboard support

Written by Xavier Gouchet - 15 february 2013 - no comments

Today, the latest version of Axel was launched, bringing many new features to make XML edition simpler.

New version

First of all, I added an implementation of the Done / Discard UI pattern. This make a much clearer interface when editing a node.

Then I added many ways to interact differently with nodes. A friend of mine once taught me that a user must be able to perform a single action in many different way, and better, should be able to change the way an action must be performed.

Quick Actions

So from now on, Axel lets you choose what happens when you tap, double tap or long press a node. By default, actions are edit on tap, add a child on double tap and bring the context menu on long press.

Axel : quick node actions

Speaking of quick action, I used the NewQuickAction library to add a better looking quick action. The same actions are available, with new ones.

Cut, Copy, Paste

A brand new feature is that Axel now support the integration with the Android clipboard, with the famous cut, copy and paste operations. Cut and copy will put the xml node (and hierarchy) as xml text in the clipboard, and psat will parse the clipboard content and insert it inside the selected node's hierarchy.

And as always, if you have any trouble with one of my app or one of my repo on github, please let me know.

Android app on Google Play Fork me on GitHub

Axel v2.0

Written by Xavier Gouchet - 03 january 2013 - 1 comment

When one generates and Android Application, it's source code is compiled inside an APK (which stands for Android Package). XML resource files are also compressed in a binary file format, and the obtained file is no longer a valid XML document.

Many people assume that those file, with the .xml extension, could be opened with Axel, my XML editor / viewer for Android, which unfortunately was not possible.

Axel (XML viewer / editor)

I've just released a new version of Axel, which now allow you to view and edit such compressed XML files. This feature is still in beta, but it is working quite well for most compressed XML files. If you have any trouble with this feature, please let me know.

Android app on Google Play Fork me on GitHub

Felix : A new version of my Felix' plorer

Written by Xavier Gouchet - 18 september 2012 - no comments

It's always a strange feeling to dig out some code written several years ago.

After the big rewrite of Ted, my most successful app, as well as making a new icon set myself, I decided to rewrite my File Browser app to have some coherence between my utility applications

Felix - browsing and options

In the process, I also added some features who where missing for a 2012 app, like multiple selection (only available on Honeycomb and higher), or zip file management (archive, extract), or a grid view.

Felix - the grid view Felix - preview of image files

Now Felix is available in its latest version with a brand new look and feel, and more powerful than ever, and can be downloaded from the Play Store.