Force fstrim for Android

If your Android device (4.3+) is slow as hell due to I/O waiting. Try this command which will force an fstrim.

am broadcast -a android.intent.action.ACTION_IDLE_MAINTENANCE_START
$ adb logcat | grep -i fstrim
 I/fstrim ( 119): Starting fstrim work...
 I/fstrim ( 119): Invoking FITRIM ioctl on /cache
 I/fstrim ( 119): Trimmed 447336448 bytes on /cache
 I/fstrim ( 119): Invoking FITRIM ioctl on /data
 I/fstrim ( 119): Trimmed 1194917888 bytes on /data
 I/fstrim ( 119): Finished fstrim work.

Android et la partition datadata – Too small!

Avant de commencer, cet article concerne les smartphones rootés.

Sous Android, il y a un truc assez gênant que j’ai constaté du moins avec mon Samsung Galaxy S sous Cyanongen 9 (ICS 4). La partition /datadata est toute petite, elle ne fait que 172Mo, et devinez-quoi ? C’est là que les applications sont installées ! Autant vous dire qu’avec ~40 applications standard c’est remplie ! Alors voici mon astuce :

Continue reading “Android et la partition datadata – Too small!”

C2DM – Notifications Android – Push

Comme on dit, « une image vaut mille mots », alors voici un petit schéma expliquant le processus de C2DM.

Cliquez sur l’image pour l’agrandir.

  1. L’application demande un « Registration ID ». C’est un ID sur les serveurs de Google qui permet d’identifier l’appareil. Celui-ci change de temps en temps, dans ce cas, Google annoncera le nouvel ID à l’application. Elle devra le re-signaler à l’API via l’étape 3 ;
  2. Les serveurs de Google renvoient le fameux « Registration ID » ;
  3. L’application Android envoi cet ID à son API. Cela n’est fait qu’une seule fois, ou lors du changement de RegistrationID ;
  4. L’API s’authentifie sur les serveurs de Google, cette étape n’est pas faite tout le temps, il faudra stocker le jeton d’authentification obtenu en 5 ;
  5. Google renvoi le jeton d’authentification ;
  6. L’API peut maintenant envoyer sa notification aux serveurs de Google, contenant le RegistrationID, le jeton d’authentification et le message ;
  7. Google se chargera de l’envoyer sur l’appareil, l’application décidera quoi faire avec.

Toutes ces opérations s’effectuent en REST. Libre à vous d’implémenter ces étapes avec votre langage et vos outils favoris. En guise d’exemple, voici un code en PHP utilisant la librairie curl, disponible sur Github. Pour la partie applicative sur Android, consulter la documentation.

La documentation de l’API Google est par ailleurs très bien fournie, il est donc conseillé de la lire en entier, ça se lit très facilement 😉