Convert Date to Unix Timestamp (Long).
import java.util.Date; public class DateHelper { public static Long dateToTimeStamp(Date date) { Long millis = date.getTime(); if(millis > 0) { return millis/1000; } else { return (long) 0; } } }
Convert Date to Unix Timestamp (Long).
import java.util.Date; public class DateHelper { public static Long dateToTimeStamp(Date date) { Long millis = date.getTime(); if(millis > 0) { return millis/1000; } else { return (long) 0; } } }
Eine einfache Klasse, um MD5 Hashes mit Java zu erstellen.
Anmerkung: MD5 ist nicht mehr sicher, es sollte SHA1 verwendet werden. Wenn kein Weg drum herum führt, immer mit Salt verwenden.
public class Security { private static final String TAG = Security.class.getSimpleName(); public static String getMd5Hash(String string) { String result = null; byte[] defaultBytes = string.getBytes(); MessageDigest algorithm; try { algorithm = java.security.MessageDigest.getInstance("MD5"); algorithm.reset(); algorithm.update(defaultBytes); byte messageDigest[] = algorithm.digest(); StringBuffer hexString = new StringBuffer(); for (int i=0;i<messageDigest.length;i++) { String hex = Integer.toHexString(0xFF & messageDigest[i]); if(hex.length()==1) hexString.append('0'); hexString.append(hex); } result = hexString.toString(); } catch (NoSuchAlgorithmException e) { Log.e(TAG, "MD5 not available", e); } return result; } }
Das Blackberry Playbook bietet die Möglichkeit Android Apps zu starten. Über Eclipse ist ein einfaches Testen im Simulator möglich.
Bei einer Fehlermeldung wie dieser:
Failed to install xxx.apk on device 'emulator-5554! (null) Launch canceled!
Kann man durch Neuanlegen eines neuen Virtual Devices (AVD) den Fehler beheben, alles andere hat bei mir nicht funktioniert.
Normalerweise kann das Samsung Galaxy S4 (oder Samsung Galaxy S3 und S2) einfach durch Plug-and-Play unter Windows 7 installiert werden. Leider hat das bei mir nicht funktioniert. Wenn man das Galaxy S4 mit dem Computer verbinden will um mp3s oder Kontakte auf das Handy zu spielen, muss man das Programm Samsung Kies installieren.
Einbinden der benötigten Bibliothek von Apache mit Eclipse: Anleitung.
Code:
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; import android.util.Log; import de.egraveyard.android.view.ItemUploader; public class FtpUpload { private static final String TAG = ItemUploader.class.getSimpleName(); String serverAdress = "ftp.lala.de"; String userName = "ftpUser"; String password = "lala"; String serverDirectory = "/android"; //String localFilePath = "/data/anr/traces.txt"; //String remoteFileName = "traces2.txt"; public boolean uploadImage(String localFilePath, String remoteFileName) { boolean result = false; FTPClient ftpClient = new FTPClient(); try { ftpClient.connect(this.serverAdress); ftpClient.login(this.userName, this.password); ftpClient.changeWorkingDirectory(this.serverDirectory); ftpClient .setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE); } catch (IOException e) { Log.d(TAG, "IOException ftp Client could not be established.controll Login, Server, Pw."); } Log.d(TAG, "FTP Server Response: " + ftpClient.getReplyString()); BufferedInputStream buffIn = null; try { buffIn = new BufferedInputStream(new FileInputStream(localFilePath)); } catch (FileNotFoundException e) { Log.d(TAG, "FileNotFoundException: local File to be uploaded not Found: " + localFilePath); } ftpClient.enterLocalPassiveMode(); try { result = ftpClient.storeFile(remoteFileName, buffIn); } catch (IOException e) { Log.d(TAG, "IOException: remote File could not be accessed"); } try { buffIn.close(); } catch (IOException e) { Log.d(TAG, "IOException: buffIn.close()"); } try { ftpClient.logout(); ftpClient.disconnect(); } catch (IOException e) { Log.d(TAG, "IOException: ftpClient close/logout"); } return result; } }
Lint ist ein praktisches Tool um einen groben Überblick über die Qualität eines Android Projektes zu bekommen und unnötigen Code zu filtern.
Lint kann über die Console oder über Eclipse gestartet werden. Ab Version ADT 16 (aktuell die neuste Version) ist Lint enthalten. Ein Update auf die neuste Version kann duchgeführt werden in Eclipse über: Help/Check for Updates.
Gestartet werden aknn Lint einfach über: Android Tools/Run Lint: Check for Common Errors
Lint kann folgende Fehler recht zuverlässig finden:
Lint kann so konfiguriert werden, dass bestimmte Fehler, wie z.B. fehlende Übersetzungen als Fehler(Error) gewertet werden. Die Konsequenz ist, dass der Compiler die App nicht kompiliert. Dies kann umgegangen werden oder noch verschärft werden über die Lint Einstellungen unter: Window/Preferences/Android/Lint Error Checking. Dort kann die Severity (deutsch: Strenge, Schwere) einer Fehlermeldung eingestellt werden.
Bspw. ist eine „Missing Translation“ am Anfang des Entwicklungsprozesses kein notwendiger Error, kann also auf Warning gesetzt werden.
Um sich beim Testen die Datenbank seiner Android Test-App anzuschauen auf dem Test-Handy benötigt man Root-Rechte, ansonsten ist der Ordner data/data auf dem Handy nicht ansehbar. Dazu kann man das Programm SuperOneClick downloaden. Hier ist ein gutes Tutorial zum Rooten des Devices.
Danach kann man mit Eclipse mit dem Plug-in CellObject DevTools mit einer optischen Oberfläche wie in dem Video beschrieben über DDMS auf die Datenbank des Test-Device zugreifen. Für 9$ über Paypal und eine Registrierung kann man sich das Tool CellObject DevTools downloaden.
Mit CellObject DevTools kann man sowohl die SQLite Datenbank auf dem Device als auch die Datenbank im Simulator optisch darstellen lassen in Eclipse.
Nach dem Download einfach in den eclipse/plugin Ordner entpacken und Eclipse neustarten.
Um in Eclipse die passenden Source Dateien zu installieren und einsehen zu können, müssen seit neustem nur ein paar kleine Schritte durchgeführt werden. Es ist keine aufwendige git Rumfurwerkerei nötig.
Wenn die Android Source Dateien nicht installiert sind, wird die folgende Fehlermeldung angezeigt.
Class File Editor Source not found The jar file classes.jar has no source attachment. You can attach the source by clicking the Attach Source below:
Lösung:
In Eclipse: Help ->Install New Software öffnen und die update Seite hinzufügen http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/
und die Installation durchführen.
Die installierten Source Dateien liegen jetzt in eclipse\plugins\com.android.ide.eclipse.source_xxxxxxx und können via select from file ausgewählt werden. Dabei muss die sources.zip aus dem Ordner der verwendeten Android Version (z.B: Ordner „4“ für Android 1.6) ausgewählt werden.
Für die Android Entwicklung unter Windoes sollte bevorzugt Eclipse als IDE benutzt werden, weil Netbeans doch einige Probleme in der Vergangenheit mit dem Andorid SDK hatte.
public class main { public static void main(String[] args) { System.out.println("Hello word"); } }