<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mgBlog &#187; Mobil</title>
	<atom:link href="http://mgsimon.de/category/mobil/feed/" rel="self" type="application/rss+xml" />
	<link>http://mgsimon.de</link>
	<description>Esc(ape), einfach ein anderes Blog über technische Spielerei ...</description>
	<lastBuildDate>Sun, 18 Dec 2011 08:52:23 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Android und JSON, JSONViewer ein Beispiel</title>
		<link>http://mgsimon.de/2011/11/10/android-und-json-jsonviewer-ein-beispiel/</link>
		<comments>http://mgsimon.de/2011/11/10/android-und-json-jsonviewer-ein-beispiel/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 07:47:31 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=3129</guid>
		<description><![CDATA[JSON wegen der Einfach- und Kompaktheit ideal f&#252;r die mobile Kommunikation, enth&#228;lt das SDK von Android einige Klassen der Referenzimplementierung. Ein kleines Beispiel kurz notiert &#8230; Kofiguration Im Manifest f&#252;r Android wird die Berechtigung f&#252;r den Zugriff auf das weltweite Netz (Zeile 7) konfiguriert. 1 2 3 4 5 6 7 8 9 10 11 [...]]]></description>
			<content:encoded><![CDATA[<p>JSON wegen der Einfach- und Kompaktheit ideal f&#252;r die mobile Kommunikation, enth&#228;lt das SDK von Android einige Klassen der Referenzimplementierung.<br />
<div id="attachment_3370" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2011/10/AndroidJSONViewer.png" alt="Android :: JSONViewer" title="Android :: JSONViewer" width="442" height="265" class="size-full wp-image-3370 stamp" /><p class="wp-caption-text">Android :: JSONViewer</p></div>Ein kleines Beispiel kurz notiert &#8230;</p>
<p><span id="more-3129"></span><div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Das folgende Beispiel wurde unter Mac OS X 10.6.8 mit der Java Version 1.6.0_26, Eclipse EE 3.7.1 Indigo und ADT (Android Development Tools) Plugin f&#252;r Eclipse durchgef&#252;hrt. Siehe auch <a href="http://mgsimon.de/2009/12/19/hello-world-android-unter-linux/">Hello World Android unter Linux</a> …</div></p>
<p><strong>Kofiguration</strong></p>
<p>Im Manifest f&#252;r Android wird die Berechtigung f&#252;r den Zugriff auf das weltweite Netz (Zeile 7) konfiguriert.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;manifest</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">package</span>=<span style="color: #ff0000;">&quot;de.mgsimon.android.jsonviewer&quot;</span> <span style="color: #000066;">android:versionCode</span>=<span style="color: #ff0000;">&quot;1&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">android:versionName</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-sdk</span> <span style="color: #000066;">android:minSdkVersion</span>=<span style="color: #ff0000;">&quot;8&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-permission</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.permission.INTERNET&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;application</span> <span style="color: #000066;">android:icon</span>=<span style="color: #ff0000;">&quot;@drawable/icon&quot;</span> <span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.JSONViewerActivity&quot;</span> <span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/manifest<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p><em>JSONViewer/AndroidManifest.xml</em></p>
<p><strong>Layout</strong></p>
<p>Das Layout enth&#228;lt ein Eingabefeld (EditText) f&#252;r die URL, ein Button (ImageButton) zum abrufen der URL und ein mehrzeiliges Textfeld (TextView) zum anzeigen.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RelativeLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/linearLayoutUrl&quot;</span> <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;match_parent&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;EditText</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/editTextURL&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:singleLine</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;0dp&quot;</span> <span style="color: #000066;">android:layout_weight</span>=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;requestFocus<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/requestFocus<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/EditText<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ImageButton</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/imageButtonLoad&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:src</span>=<span style="color: #ff0000;">&quot;@android:drawable/ic_media_play&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;0dp&quot;</span> <span style="color: #000066;">android:layout_weight</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/ImageButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ScrollView</span> <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:layout_below</span>=<span style="color: #ff0000;">&quot;@+id/linearLayoutUrl&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">android:layout_margin</span>=<span style="color: #ff0000;">&quot;5dip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/textViewContent&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">android:textAppearance</span>=<span style="color: #ff0000;">&quot;?android:attr/textAppearanceMedium&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ScrollView<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RelativeLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><em>JSONViewer/res/layout/main.xml</em></p>
<p><strong>Activity</strong></p>
<p>Die Aktivit&#228;t JSONViewerActivity erweitert Activity (Zeile 26) und initialisiert notwendige Komponenten in der &#252;berschriebene Methode onCreate (Zeile 37). Referenzen zu Elementen des UI werden &#252;ber findViewById (Zeile 41,43 und 44) gesetzt und dem ImageButton (Zeile 45) wird die aufzurufende Methode f&#252;r das Event onClick (Zeile 48) &#252;berschrieben.</p>
<p>Die Methode onClick &#8211; aufgerufen durch Klick auf dem Button &#8211; startet mit &#252;bergebener URL (Zeile 50) einen Thread (Zeile 51). Die Klasse UrlLoadTask zeigt vor (Zeile 63) dem Thread einen Status an und aktualisiert die Aktivit&#228;t nach (Zeile 94) dem Thread. </p>
<p>Die Daten werden unabh&#228;ngig des Threads f&#252;r die Benutzeroberfl&#228;che in der Methode doInBackground (Zeile 69) verarbeitet.  </p>
<div style="background-color: rgb(191, 255, 191); border:1px solid rgb(128, 255, 128); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/tip.png" alt="Tipp" title="Tipp" width="24" height="24" style="margin: 4px 8px 0 0; float:left;" />Application not responding (ANR) Meldungen werden nach etwa drei Sekunden geworfen, wenn die Benutzeroberfl&#228;che blockiert wird. Alle langl&#228;ufigen und unbekannten Laufzeiten nebenl&#228;ufig ausf&#252;hren, dann klappt es auch ohne ANR.</div>
<p>Im Hintergrund herunterladen (Zeile 71-73), JSONObject erzeugen (Zeile 74) und die TextView aktualisieren (Zeile 97).</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">de.mgsimon.android.jsonviewer</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.URI</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.URISyntaxException</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.HttpResponse</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.ParseException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.client.ClientProtocolException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.client.HttpClient</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.client.methods.HttpGet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.impl.client.DefaultHttpClient</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.util.EntityUtils</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.json.JSONException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.json.JSONObject</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.ProgressDialog</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.AsyncTask</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.EditText</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.ImageButton</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.TextView</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> JSONViewerActivity <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> EditText mEditTextUrl<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> ImageButton mImageButtonLoad<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> TextView mTextViewContent<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> URI mUri<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> ProgressDialog mProgressDialog<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
  @Override
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    mEditTextUrl <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EditText<span style="color: #009900;">&#41;</span> findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">editTextURL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mEditTextUrl.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://mgsimon.appspot.com/aboutmyrequest&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mTextViewContent <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>TextView<span style="color: #009900;">&#41;</span> findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">textViewContent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mImageButtonLoad <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>ImageButton<span style="color: #009900;">&#41;</span> findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">imageButtonLoad</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mImageButtonLoad.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">View</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
      @Override
      <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
          mUri <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> URI<span style="color: #009900;">&#40;</span>mEditTextUrl.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #000000; font-weight: bold;">new</span> UrlLoadTask<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">execute</span><span style="color: #009900;">&#40;</span>mUri<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>URISyntaxException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          mTextViewContent.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">class</span> UrlLoadTask <span style="color: #000000; font-weight: bold;">extends</span> AsyncTask<span style="color: #339933;">&lt;</span>URI, <span style="color: #003399;">Void</span>, JSONObject<span style="color: #339933;">&gt;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> onPreExecute<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      mProgressDialog <span style="color: #339933;">=</span> ProgressDialog.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span>JSONViewerActivity.<span style="color: #000000; font-weight: bold;">this</span>, <span style="color: #0000ff;">&quot;&quot;</span>,
          <span style="color: #0000ff;">&quot;Loading. Please wait...&quot;</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">protected</span> JSONObject doInBackground<span style="color: #009900;">&#40;</span>URI... <span style="color: #006633;">uris</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
        HttpClient client <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DefaultHttpClient<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        HttpGet get <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HttpGet<span style="color: #009900;">&#40;</span>uris<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        HttpResponse response <span style="color: #339933;">=</span> client.<span style="color: #006633;">execute</span><span style="color: #009900;">&#40;</span>get<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        JSONObject jso <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span>EntityUtils.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span>response
            .<span style="color: #006633;">getEntity</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>jso<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>ClientProtocolException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        mTextViewContent.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">IOException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        mTextViewContent.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">ParseException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        mTextViewContent.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>JSONException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        mTextViewContent.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> onPostExecute<span style="color: #009900;">&#40;</span>JSONObject jso<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>jso <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
          mTextViewContent.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>jso.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>JSONException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        mTextViewContent.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      mProgressDialog.<span style="color: #006633;">dismiss</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><em>JSONViewer/src/de.mgsimon.android.jsonviewer/JSONViewerActivity.java</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2011/11/10/android-und-json-jsonviewer-ein-beispiel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon Kindle 1-Click, Benutzerfreundlichkeit oder Sicherheitsl&#252;cke?</title>
		<link>http://mgsimon.de/2011/10/16/amazon-kindle-1-click-benutzerfreundlichkeit-oder-sicherheitslucke/</link>
		<comments>http://mgsimon.de/2011/10/16/amazon-kindle-1-click-benutzerfreundlichkeit-oder-sicherheitslucke/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 18:36:58 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Kindle]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=3091</guid>
		<description><![CDATA[Amazon hat vier neue Kindle &#8211; Kindle Fire, Kindle Touch 3G, Kindle Touch und Kindle &#8211; vorgestellt und das kleinste Modell in Deutschland f&#252;r 99 Euro im Angebot. Schon immer mit dem Gedanken mir ein E-Book-Reader zulegen zu wollen, konnte ich gleich eine nicht so sch&#246;ne Benutzerfreundlichkeit feststellen &#8230; Den Kindle ausgepackt, mit Strom versorgt, [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon hat vier neue Kindle &#8211; Kindle Fire, Kindle Touch 3G, Kindle Touch und <a href="http://www.amazon.de/dp/B0051QVF7A?tag=mgs-21">Kindle</a> &#8211; vorgestellt und das kleinste Modell in Deutschland f&#252;r <a href="http://www.amazon.de/dp/B0051QVF7A?tag=mgs-21">99 Euro</a> im Angebot.<br />
<div id="attachment_3095" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2011/10/AmazonKindle.jpg" alt="Amazon Kindle" title="Amazon Kindle" width="442" height="637" class="size-full wp-image-3095 stamp" /><p class="wp-caption-text">Amazon Kindle</p></div><br />
Schon immer mit dem Gedanken mir ein E-Book-Reader zulegen zu wollen, konnte ich gleich eine nicht so sch&#246;ne Benutzerfreundlichkeit feststellen &#8230;</p>
<p><span id="more-3091"></span>Den <a href="http://www.amazon.de/dp/B0051QVF7A?tag=mgs-21">Kindle</a> ausgepackt, mit Strom versorgt, WLAN verbunden, Benutzerkonto best&#228;tigt und das erste Buch gekauft. </p>
<p><em>Einfach so, ohne ein Passwort &#8230;?</em></p>
<p>Der <a href="http://www.amazon.de/dp/B0051QVF7A?tag=mgs-21">Kindle</a> wird mit eingerichtetem Benutzerkonto ausgeliefert und im Kindle-Shop kann durch <strong>nur</strong> ein Klick auf &#8220;Kaufen&#8221; eingekauft werden.</p>
<p>Auch wenn Amazon die Option anbietet einen Kauf unmittelbar &#252;ber Fehlkauf zu widerrufen und zus&#228;tzlich ein <a href="http://www.amazon.de/gp/help/customer/display.html/ref=hp_200648230_kretpo_retkc?nodeId=200648230#content" target="_blank">7-t&#228;giges freiwilliges R&#252;ckgaberecht auf eBooks</a> gew&#228;hrt, bin ich mit dieser Ein-Klick-Kauf-Geschichte nicht ganz zufrieden. </p>
<p>Vielleicht m&#246;chten die Kinder das eine oder andere Kinderbuch &#8220;zuviel&#8221; lesen oder der Eine oder Andere sich ein Buch auf meinem <a href="http://www.amazon.de/dp/B0051QVF7A?tag=mgs-21">Kindle</a> ansehen.</p>
<p>Auf der Suche nach einer L&#246;sung mit mehreren Anfragen an den sehr freundlichen und schnellen Amazon Support, konnte ich durch folgenden Workaround die f&#252;r mich etwas zu viel Usability deaktivieren.</p>
<p>Alle unter &#8220;Mein Konto&#8221; / &#8220;Zahlungsart &#228;ndern oder l&#246;schen&#8221; hinterlegten Zahlungsweisen entfernen und die &#8220;Kaufen&#8221;-Funktion auf dem <a href="http://www.amazon.de/dp/B0051QVF7A?tag=mgs-21">Kindle</a> endet mit folgendem Hinweis. </p>
<blockquote><p>Sie haben f&#252;r Ihr Nutzerkonto auf Amazon.de bisher noch keine g&#252;ltige Standard-Kreditkarte fetgelegt. Sie k&#246;nnen Ihre Standard-Kreditkarte jetzt festlegen, oder Sie k&#246;nnen Amazon.de besuchen und auf der Seite &#8220;Mein Konto&#8221; auf &#8220;Mein Kindle&#8221; klicken. &#8230; M&#246;chten Sie Ihre Kreditkarte jetzt festlegen? &#8220;Ja&#8221; &#8220;Nein&#8221;</p></blockquote>
<p>Mit dem Klick auf &#8220;Ja&#8221; wird jetzt wenigstens im Browser zur Anmeldung auf amazon.de aufgefordert.</p>
<p>Mit dem Nachteil bei jedem Kauf die Zahlungsweise neu angeben und l&#246;schen zu m&#252;ssen, kann wenigstens auf dem Kindle nicht mehr nach Lust und Laune eingekauft werden. </p>
<p>Sonst bin ich mit meinem <a href="http://www.amazon.de/dp/B0051QVF7A?tag=mgs-21">Kindle</a> sehr zu frieden. Vielleicht wird Amazon zu einem optionalen &#8220;1-Click-Protected&#8221; o.&#228;. irgendwann nachbessern? ;-)</p>
<p>Apropos Kindle-Auslieferung &#038; konfiguriertem Benutzerkonto; einem Bekannten wurde die &#8220;frustrationsfreie&#8221; Verpackung zugesendet. Aber nur die Verpackung, der Kindle war nicht dabei &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2011/10/16/amazon-kindle-1-click-benutzerfreundlichkeit-oder-sicherheitslucke/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Motorola Milestone &amp; Froyo</title>
		<link>http://mgsimon.de/2011/03/18/motorola-milestone-froyo/</link>
		<comments>http://mgsimon.de/2011/03/18/motorola-milestone-froyo/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 20:36:38 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Froyo]]></category>
		<category><![CDATA[Milestone]]></category>
		<category><![CDATA[Motorola]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=2979</guid>
		<description><![CDATA[Das lang ersehnte Update der Milestone Geschichte kann aktuell durch die Update-Software von Motorola unter Windows &#252;ber das USB-Kabel installiert werden. Motorola Milestone meets Android Froyo &#8230; Acht Dialogfenster unter Windows und drei Neustarts auf dem Milestone sp&#228;ter erstrahlt der kleine Stein mit der Firmware-Version 2.2.1 (Froyo). Ein kleiner Schritt f&#252;r das Milestone, ein riesiger [...]]]></description>
			<content:encoded><![CDATA[<p>Das lang ersehnte Update der Milestone Geschichte kann aktuell durch die <a href="http://direct.motorola.com/GER/SoftwareUpdateSummary.asp?country=DEU&#038;language=GER&#038;web_page_name=SUPPORT&#038;strCarrierId=&#038;strPhone=MILESTONE&#038;strCable=Micro%20USB%20Data%20Cable&#038;strURL=https://rsddownload.motorola.com/download/Motorola_MILESTONE_MR2.5_Release_Notes_Final.pdf">Update-Software von Motorola</a> unter Windows &#252;ber das USB-Kabel installiert werden.<br />
<div id="attachment_2983" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2011/03/MotorolaMilestoneSWUpdateInProgress.png" alt="Motorola Milestone :: SW Update In progress ..." title="Motorola Milestone :: SW Update In progress ..." width="442" height="265" class="size-full wp-image-2983 stamp" /><p class="wp-caption-text">Motorola Milestone :: SW Update In progress ...</p></div><br />
Motorola Milestone meets Android Froyo &#8230;</p>
<p><span id="more-2979"></span>Acht Dialogfenster unter Windows und drei Neustarts auf dem Milestone sp&#228;ter erstrahlt der kleine Stein mit der Firmware-Version 2.2.1 (Froyo).</p>
<div id="attachment_2986" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2011/03/MotorolaMilestoneTelefoninfo22.png" alt="Motorola Milestone :: Telefoninfo 2.2" title="Motorola Milestone :: Telefoninfo 2.2" width="442" height="786" class="size-full wp-image-2986 stamp" /><p class="wp-caption-text">Motorola Milestone :: Telefoninfo 2.2</p></div>
<p>Ein kleiner Schritt f&#252;r das Milestone, ein riesiger Schritt f&#252;r Motorola &#8230; </p>
<ul>
<li>mobile Hotspot
</li>
<li>Flash
</li>
<li>JIT
</li>
<li>V8
</li>
<li>App2SD
</li>
<li>&#8230; </li>
</ul>
<p>@mobiflip / <a href="http://www.mobiflip.de/2011/03/android-2-2-froyo-fuer-das-motorola-milestone-wird-ab-sofort-ausgeliefert/">Android 2.2 Froyo f&#252;r das Motorola Milestone wird ab sofort ausgeliefert</a>: funktioniert o2 und frei &#8230; :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2011/03/18/motorola-milestone-froyo/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Android Emulator unter Mac OS X selbst erstellen</title>
		<link>http://mgsimon.de/2010/10/08/android-emulator-unter-mac-os-x-selbst-erstellen/</link>
		<comments>http://mgsimon.de/2010/10/08/android-emulator-unter-mac-os-x-selbst-erstellen/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 04:57:12 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[MacOSX]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=2745</guid>
		<description><![CDATA[Am Anfang war das Android-SDK, sp&#228;ter die Tiefen der Quellen und am Ende der selbst erstellte Emulator unter Mac OS X &#8230; Disk Image Disk Image &#8220;android.dmg&#8221; f&#252;r die Android-Quellen mit dem Festplatten-Dienstprogramm unter &#8220;Programme / Dienstprogramme&#8221; mit folgenden Optionen erstellen. Sichern unter: android.dmg Name: android Gr&#246;&#223;e: Eigene (10,24 GB) Format: Mac OS Extended (Gro&#223;- [...]]]></description>
			<content:encoded><![CDATA[<p>Am Anfang war das <a href="http://mgsimon.de/2009/12/19/hello-world-android-unter-linux/">Android-SDK</a>, sp&#228;ter <a href="http://mgsimon.de/2010/09/19/android-und-die-tiefen-der-quellen/">die Tiefen der Quellen</a> und am Ende der selbst erstellte Emulator unter Mac OS X &#8230;<br />
<div id="attachment_2794" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/10/MacOSXBootAndroidEmulator.png" alt="Mac OS X :: Boot Android Emulator" title="Mac OS X :: Boot Android Emulator" width="442" height="323" class="size-full wp-image-2794 stamp" /><p class="wp-caption-text">Mac OS X :: Boot Android Emulator</p></div><br />
<div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Das folgende Beispiel wurde unter Mac OS X &#8211; 10.6.4 &#8211; Snow Leopard durchgef&#252;hrt.</div><span id="more-2745"></span></p>
<p><strong>Disk Image</strong></p>
<div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Warum ein Disk Image?<br />
Die Quellen der Android-Plattform enthalten Dateien mit gleichen Name, welche sich lediglich durch Gro&#223;- / Kleinschreibung unterscheiden. Mac OS X unterscheidet diese im Auslieferungszustand nicht.</div>
<p>Disk Image &#8220;android.dmg&#8221; f&#252;r die Android-Quellen mit dem Festplatten-Dienstprogramm unter &#8220;Programme / Dienstprogramme&#8221; mit folgenden Optionen erstellen.</p>
<ul>
<li>Sichern unter: android.dmg</li>
<li>Name: android</li>
<li>Gr&#246;&#223;e: Eigene (10,24 GB)</li>
<li>Format: Mac OS Extended (Gro&#223;- / Kleinschreibung und Journaled)</li>
</ul>
<p><div id="attachment_2780" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/10/MacOSXFestplattenDienstprogrammImageErstellen.png" alt="Mac OS X :: Festplatten-Dienstprogramm Image erstellen" title="Mac OS X :: Festplatten-Dienstprogramm Image erstellen" width="442" height="307" class="size-full wp-image-2780 stamp" /><p class="wp-caption-text">Mac OS X :: Festplatten-Dienstprogramm Image erstellen</p></div><br />
<strong>Xcode &#038; MacPorts</strong></p>
<p>Die aktuellen Versionen von <a href="http://developer.apple.com/">Xcode</a> und <a href="http://www.macports.org/install.php">MacPorts</a> herunterladen, installieren und wie folgt konfigurieren.</p>
<ul>
<li>In der Datei &#8220;~/.bash_profile&#8221; die Umgebungsvariable &#8220;PATH&#8221; f&#252;r die MacPorts und &#8220;repo&#8221; (Repository-Skript) erweitern.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">PATH=/opt/local/bin:~/bin:$PATH</pre></div></div>

<ul>
<li>Zus&#228;tzliche MacPorts Pakete u.a. f&#252;r die Versionsverwaltung Git installieren.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #c20cb9; font-weight: bold;">gmake</span> libsdl git-core gnupg</pre></div></div>

<p><strong>Repository</strong></p>
<p>Das Repository-Skript installieren und auf dem erstellten Disk Image initialisieren. Die anschlie&#223;ende Synchronisation l&#228;dt bei einer 20 MB DSL Anbindung in ungef&#228;hr einer Stunde (64m22.741s) etwa vier GB Quellen herunter.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>bin
$ curl http:<span style="color: #000000; font-weight: bold;">//</span>android.git.kernel.org<span style="color: #000000; font-weight: bold;">/</span>repo <span style="color: #000000; font-weight: bold;">&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>repo
$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> a+x ~<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>repo
$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>Volumes<span style="color: #000000; font-weight: bold;">/</span>android 
$ repo init <span style="color: #660033;">-u</span> <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>android.git.kernel.org<span style="color: #000000; font-weight: bold;">/</span>platform<span style="color: #000000; font-weight: bold;">/</span>manifest.git
$ repo <span style="color: #c20cb9; font-weight: bold;">sync</span></pre></div></div>

<p><strong>Make</strong></p>
<p>Die Quellen der Android Plattform k&#246;nnen mit einem einfachen &#8220;make&#8221; (ca. zwei Stunden (114m23.836s) Mac Book Pro 2.4 GHz) &#252;bersetzt werden.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">make</span></pre></div></div>

<p><strong>Emulator</strong></p>
<p>Zu guter letzt kann der Emulator wie folgt gestartet werden.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ . build<span style="color: #000000; font-weight: bold;">/</span>envsetup.sh
$ lunch <span style="color: #000000;">1</span>
$ emulator</pre></div></div>

<div id="attachment_2787" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/10/MacOSXAndroidEmulator.png" alt="Mac OS X :: Android Emulator" title="Mac OS X :: Android Emulator" width="442" height="432" class="size-full wp-image-2787 stamp" /><p class="wp-caption-text">Mac OS X :: Android Emulator</p></div>
<p><strong>Und es l&#228;uft doch &#8230;</strong></p>
<p>Abweichend der Dokumentation auf <a href="http://source.android.com/source/download.html">source.android.com</a> k&#246;nnen die aktuellen Android Quellen auch unter Snow Leopard &#252;bersetzt werden. :-)</p>
<blockquote><p>At the moment MacOS 10.6 (&#8220;Snow Leopard&#8221;) is not supported.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2010/10/08/android-emulator-unter-mac-os-x-selbst-erstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android und die Tiefen der Quellen</title>
		<link>http://mgsimon.de/2010/09/19/android-und-die-tiefen-der-quellen/</link>
		<comments>http://mgsimon.de/2010/09/19/android-und-die-tiefen-der-quellen/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 12:45:18 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[Mobil]]></category>
		<category><![CDATA[uup]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Plattform]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=2596</guid>
		<description><![CDATA[Das Android SDK mit den Android Development Tools (ADT) und Eclipse oder die Entwicklungsumgebung MOTODEV Studio for Android von Motorola erm&#246;glichen einen leichten Einstieg in die Anwendungsentwicklung f&#252;r Android, aber sp&#228;testens f&#252;r systemnahe Anwendungen sind diese Umgebungen nicht mehr ausreichend. Ein erster Versuch &#252;ber die Grenzen der eigenen Anwendung hinaus die Klassen der Android Plattform [...]]]></description>
			<content:encoded><![CDATA[<p>Das <a href="http://developer.android.com/sdk/index.html">Android SDK</a> mit den <a href="http://developer.android.com/sdk/eclipse-adt.html">Android Development Tools (ADT)</a> und <a href="http://www.eclipse.org/">Eclipse</a> oder die Entwicklungsumgebung <a href="http://developer.motorola.com/docstools/motodevstudio/">MOTODEV Studio for Android</a> von Motorola erm&#246;glichen einen leichten Einstieg in die Anwendungsentwicklung f&#252;r Android, aber sp&#228;testens f&#252;r systemnahe Anwendungen sind diese Umgebungen nicht mehr ausreichend.<br />
<div id="attachment_2685" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/09/MOTODEV_debug.png" alt="MOTODEV :: Debug" title="MOTODEV :: Debug" width="442" height="248" class="size-full wp-image-2685 stamp" /><p class="wp-caption-text">MOTODEV :: Debug</p></div><br />
Ein erster Versuch &#252;ber die Grenzen der eigenen Anwendung hinaus die Klassen der Android Plattform im Debugger zu analysieren &#8230; </p>
<p><span id="more-2596"></span><div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Das folgende Beispiel wurde unter <a href="http://www.ubuntu.com/desktop/get-ubuntu/download">Ubuntu 9.10 &#8211; Karmic Koala &#8211; 64-bit x86</a> mit der IDE <a href="http://developer.motorola.com/docstools/motodevstudio/download/">MOTODEV Studio for Android v1.3 (64-bit)</a> durchgef&#252;hrt.</div></p>
<p><strong>Entwicklungsumgebung Android Plattform</strong></p>
<p>erforderliche Pakete installieren</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> openjdk-<span style="color: #000000;">6</span>-jdk git-core gnupg <span style="color: #c20cb9; font-weight: bold;">flex</span> <span style="color: #c20cb9; font-weight: bold;">bison</span> gperf build-essential <span style="color: #c20cb9; font-weight: bold;">zip</span> curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev</pre></div></div>

<p>Ubuntu X11 Workaround</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib32<span style="color: #000000; font-weight: bold;">/</span>libX11.so.6 <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib32<span style="color: #000000; font-weight: bold;">/</span>libX11.so</pre></div></div>

<p>repo Skript installieren</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ curl http:<span style="color: #000000; font-weight: bold;">//</span>android.git.kernel.org<span style="color: #000000; font-weight: bold;">/</span>repo <span style="color: #000000; font-weight: bold;">&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>repo
$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> +x ~<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>repo</pre></div></div>

<p>Verzeichnis f&#252;r die lokalen Quellen erstellen</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>android-master
$ <span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>android-master<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Verzeichnis f&#252;r die Quellen initialisieren</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ ~<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>repo init <span style="color: #660033;">-u</span> <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>android.git.kernel.org<span style="color: #000000; font-weight: bold;">/</span>platform<span style="color: #000000; font-weight: bold;">/</span>manifest.git</pre></div></div>

<p>Quellen herunterladen<br />
<div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Die <a href="http://android.git.kernel.org/">Quellen</a> der Android Plattform sind 4,1 GB und konnten mit meiner DSL Anbindung in gut 40 Minuten (39m8.564s) heruntergeladen werden.</div></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ ~<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>repo <span style="color: #c20cb9; font-weight: bold;">sync</span></pre></div></div>

<p>Android Plattform &#252;bersetzen<br />
<div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Die 4,1 GB Quellen der Android Plattform konnte ich mit meinem Asus P50IJ in gut zwei Stunden (123m26.699s) &#252;bersetzen und wachsen auf etwa 8,1 GB an.</div></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>android-master<span style="color: #000000; font-weight: bold;">/</span>
$ <span style="color: #c20cb9; font-weight: bold;">make</span></pre></div></div>

<p>Emulator starten</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>android-master<span style="color: #000000; font-weight: bold;">/</span>
$ . build<span style="color: #000000; font-weight: bold;">/</span>envsetup.sh
$ lunch <span style="color: #000000;">1</span>
$ emulator</pre></div></div>

<p><div style="background-color: rgb(191, 255, 191); border:1px solid rgb(128, 255, 128); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/tip.png" alt="Tipp" title="Tipp" width="24" height="24" style="margin: 4px 8px 0 0; float:left;" />Der Emulator wird gegens&#228;tzlich zum OS in der vertikalen Ausrichtung gestartet? Damit der Nacken nicht steif wird, kann die Ausrichtung des Emulators mit &lt;STRG&gt;+&lt;F11&gt; und &lt;STRG&gt;+&lt;F12&gt; ge&#228;ndert werden.</div><br />
<div id="attachment_2665" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/09/android_emulator_horizontal.png" alt="Android Plattform :: Emulator" title="Android Plattform :: Emulator" width="442" height="436" class="size-full wp-image-2665 stamp" /><p class="wp-caption-text">Android Plattform :: Emulator</p></div></p>
<p>Anwendung installieren (optional)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>android-master<span style="color: #000000; font-weight: bold;">/</span>
$ . build<span style="color: #000000; font-weight: bold;">/</span>envsetup.sh
$ lunch <span style="color: #000000;">1</span>
$ adb <span style="color: #660033;">-s</span> emulator-<span style="color: #000000;">5554</span> <span style="color: #c20cb9; font-weight: bold;">install</span> MeineAnwendung.apk</pre></div></div>

<p><strong>Android Plattform &#038; MOTODEV Studio for Android</strong></p>
<p>Vorlage f&#252;r die Classpath-Konfiguration kopieren</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>android-master<span style="color: #000000; font-weight: bold;">/</span>
$ <span style="color: #c20cb9; font-weight: bold;">cp</span> development<span style="color: #000000; font-weight: bold;">/</span>ide<span style="color: #000000; font-weight: bold;">/</span>eclipse<span style="color: #000000; font-weight: bold;">/</span>.classpath .
$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> u+<span style="color: #c20cb9; font-weight: bold;">w</span> .classpath</pre></div></div>

<p>In der IDE die Quellen der Android Plattform &#252;ber &#8220;File / New / Project&#8230; / Java / Java Project&#8221; und der &#8220;Use default loation&#8221; ge&#228;ndert auf &#8220;~/android/android-master&#8221; einbinden.<br />
<div id="attachment_2688" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/09/eclipse_new_java_project.png" alt="MOTODEV :: new Java Project" title="MOTODEV :: new Java Project" width="442" height="552" class="size-full wp-image-2688 stamp" /><p class="wp-caption-text">MOTODEV :: new Java Project</p></div><br />
<strong>Anwendung &#038; Android Plattform debuggen</strong></p>
<p>Die Quellen der eigenen Anwendung der Android Plattform &#252;ber Kontextmen&#252; &#8220;Build Path / Configure Build Path&#8230; / Projects / Add&#8230; / Select projects to add&#8221; hinzuf&#252;gen.</p>
<p>DDMS Perspektive &#246;ffnen und die VM der gestarteten Anwendung zum debuggen selektieren.<br />
<div id="attachment_2675" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/09/MOTODEV_DDMS.png" alt="MOTODEV :: DDMS" title="MOTODEV :: DDMS" width="442" height="248" class="size-full wp-image-2675 stamp" /><p class="wp-caption-text">MOTODEV :: DDMS</p></div></p>
<p>Zu guter letzt einen Breakpoint nach belieben setzen und &#252;ber Kontextmen&#252; auf das Projekt der Android Plattform &#8220;Debug As / Debug Configurations&#8230;&#8221; unter &#8220;Remote Java Application&#8221; eine neue Konfiguration mit folgenden Werten erstellen.</p>
<div id="attachment_2683" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/09/MOTODEV_debug_configuration.png" alt="MOTODEV :: Debug Configuration" title="MOTODEV :: Debug Configuration" width="442" height="354" class="size-full wp-image-2683 stamp" /><p class="wp-caption-text">MOTODEV :: Debug Configuration</p></div>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Host: localhost
Port: 8700</pre></div></div>

<p>&#220;ber Debug verbindet sich die IDE mit der im DDMS selektierten VM des Emulators und bei erreichen des Breakpoints kann in die Debug Perspektive gewechselt werden und bis in die Tiefen der Android Plattform Quellen Schritt f&#252;r Schritt vorgedrungen werden &#8230;</p>
<div id="attachment_2697" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/09/MOTODEV_confirm_perspective_switch.png" alt="MOTODEV :: Switch Perspective" title="MOTODEV :: Switch Perspective" width="442" height="208" class="size-full wp-image-2697 stamp" /><p class="wp-caption-text">MOTODEV :: Switch Perspective</p></div>
<p>Schon mal nicht schlecht &#8230; sch&#246;n w&#228;re noch eine bessere Integration des selbst erstellten Emulators in die IDE &#8230; ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2010/09/19/android-und-die-tiefen-der-quellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AndTidWiki, Verkn&#252;pfungen  und Market</title>
		<link>http://mgsimon.de/2010/07/11/andtidwiki-verknuepfungen-und-market/</link>
		<comments>http://mgsimon.de/2010/07/11/andtidwiki-verknuepfungen-und-market/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 15:40:01 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Mobil]]></category>
		<category><![CDATA[AndTidWiki]]></category>
		<category><![CDATA[TiddlyWiki]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=2512</guid>
		<description><![CDATA[Die neue Version (beta) jetzt im Market &#8211; AndTidWiki Market-Link. AndTidWiki &#8230; 0.5 orientation or keyboard f&#252;r neue Activity. 0.4 minSdkVersion + targetSdkVersion f&#252;r Android 1.6. 0.3 Verkn&#252;pfung zu TiddlyWiki-Datei erstellen. ...]]></description>
			<content:encoded><![CDATA[<p>Die neue Version (beta) jetzt im Market &#8211; <a href="market://search?q=pname:de.mgsimon.android.andtidwiki">AndTidWiki Market-Link</a>.</p>
<div id="attachment_2530" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/07/AndTidWiki_TiddlyWikiMarkup_Edit_View.png" alt="AndTidWiki :: TiddlyWikiMarkup / Edit &amp; View" title="AndTidWiki_TiddlyWikiMarkup_Edit_View" width="442" height="393" class="size-full wp-image-2530 stamp" /><p class="wp-caption-text">AndTidWiki :: TiddlyWikiMarkup / Edit &#038; View</p></div>
<p><span id="more-2512"></span><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/0NOvW40Uw3Q&amp;hl=de_DE&amp;fs=1?rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/0NOvW40Uw3Q&amp;hl=de_DE&amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><a href="http://mgsimon.de/android/andtidwiki/">AndTidWiki &#8230;</a></p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">0.5 orientation or keyboard für neue Activity.
0.4 minSdkVersion + targetSdkVersion für Android 1.6.
0.3 Verknüpfung zu TiddlyWiki-Datei erstellen.
...</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2010/07/11/andtidwiki-verknuepfungen-und-market/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Android und TiddlyWiki</title>
		<link>http://mgsimon.de/2010/07/04/android-und-tiddlywiki/</link>
		<comments>http://mgsimon.de/2010/07/04/android-und-tiddlywiki/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 11:48:50 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[AndTidWiki]]></category>
		<category><![CDATA[TiddlyWiki]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=2380</guid>
		<description><![CDATA[TiddlyWiki ist ein kompaktes in einer Datei sich selbst verwaltendes Wiki. Von einem mobilen Speichermedium wie USB-Stick oder SD-Card immer und &#252;berall in vielen Browser verf&#252;gbar. Aber wie sieht es mit TiddlyWiki und Android aus? Eines der Hauptprobleme ist das Speichern der Datei. TiddlyWiki verwendet f&#252;r die meisten Browser Workarounds, um Zugriff &#252;ber JavaScript auf [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tiddlywiki.com/">TiddlyWiki</a> ist ein kompaktes in einer Datei sich selbst verwaltendes Wiki. Von einem mobilen Speichermedium wie USB-Stick oder SD-Card immer und &#252;berall in vielen Browser verf&#252;gbar.<br />
<div id="attachment_2409" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/07/TiddlyWikiMozillaFirefox.png" alt="TiddlyWiki :: Mozilla Firefox" title="TiddlyWikiMozillaFirefox" width="442" height="299" class="size-full wp-image-2409 stamp" /><p class="wp-caption-text">TiddlyWiki :: Mozilla Firefox</p></div><br />
Aber wie sieht es mit <a href="http://tiddlywiki.com/">TiddlyWiki</a> und Android aus?</p>
<p><span id="more-2380"></span>Eines der Hauptprobleme ist das Speichern der Datei. <a href="http://tiddlywiki.com/">TiddlyWiki</a> verwendet f&#252;r die meisten Browser Workarounds, um Zugriff &#252;ber JavaScript auf das Dateisystem zu erhalten.<br />
</p>
<table width="100%">
<tr>
<th>Browser</th>
<th>Workaround</th>
</tr>
<tr>
<td>FireFox</td>
<td>JavaScript und PrivilegeManager</td>
</tr>
<tr>
<td>InternetExplorer</td>
<td>ActiveX</td>
</tr>
<tr>
<td>Chrome, Safari oder Opera</td>
<td>Applet</td>
</tr>
</table>
<p><center>Tabelle :: Workarounds</center></p>
<p>Im Browser unter Android funktioniert keine dieser Umgehungsl&#246;sungen.</p>
<p>Und es geht doch &#8230;</p>
<div id="attachment_2385" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/07/AndTidWiki_Save.png" alt="Android Tiddly Wiki :: Speichern" title="AndTidWiki_Save" width="442" height="248" class="size-full wp-image-2385 stamp" /><p class="wp-caption-text">Android Tiddly Wiki :: Speichern</p></div>
<p>&#8230; mit einer angepassten WebView &#228;hnlich dem Applet-Workaround funktioniert <a href="http://tiddlywiki.com/">TiddlyWiki</a> unter Android.</p>
<p>Die erste Testversion kann unter <a href="/android/andtidwiki">AndTidWiki</a> heruntergeladen werden.</p>
<p>Vielen Dank <a href="http://soup.information-architects.de/">SimonOX</a> f&#252;r die JavaScript-Unterst&#252;tzung &#8230; :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2010/07/04/android-und-tiddlywiki/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android und VPN-Gefl&#252;ster</title>
		<link>http://mgsimon.de/2010/04/12/android-und-vpn-gefluester/</link>
		<comments>http://mgsimon.de/2010/04/12/android-und-vpn-gefluester/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 19:23:43 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Mobil]]></category>
		<category><![CDATA[DD-WRT]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=2190</guid>
		<description><![CDATA[Auf der Suche nach einem Router, um nicht nur mit Linux sondern auch mit Android &#252;ber VPN auf das heimische Netz Zugriff zu haben, konnte ich die Open Source Router von NETGEAR wahlweise mit der orginal Firmware von NETGEAR, DD-WRT, OpenWRT oder Tomato finden. Kurz notiert &#8230; VPN-Server (Router) Dynamic Domain Name System unter &#8220;Setup [...]]]></description>
			<content:encoded><![CDATA[<p>Auf der Suche nach einem Router, um nicht nur mit Linux sondern auch mit Android &#252;ber VPN auf das heimische Netz Zugriff zu haben, konnte ich die <a href="http://www.myopenrouter.com/">Open Source Router von NETGEAR</a> wahlweise mit der orginal Firmware von NETGEAR, <a href="http://www.dd-wrt.com/site/index">DD-WRT</a>, <a href="http://openwrt.org/">OpenWRT</a> oder <a href="http://polarcloud.com/tomato">Tomato</a> finden. </p>
<div id="attachment_2236" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/AndroidPPTP-VPN-Verbunden.png" alt="Android :: PPTP-VPN Verbunden" title="AndroidPPTP-VPN-Verbunden" width="442" height="248" class="size-full wp-image-2236 stamp" /><p class="wp-caption-text">Android :: PPTP-VPN Verbunden</p></div>
<p>Kurz notiert &#8230;</p>
<p><span id="more-2190"></span><div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Die VPN-Testverbindungen wurden mit NETGEAR WNR3500L (Firmware DD-WRT) &#252;ber willy.tel alias wilheml.tel und UMTS &#252;ber dem Mobilfunkanbieter O2 mit dem MILESTONE von Motorola (Android 2.1) durchgef&#252;hrt.</div></p>
<p><strong>VPN-Server (Router)</strong></p>
<p>Dynamic Domain Name System unter &#8220;Setup / DDNS&#8221; einrichten.</p>
<div id="attachment_2231" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/DD-WRT_DynamicDNS.png" alt="DD-WRT :: Dynamic DNS" title="DD-WRT_DynamicDNS" width="442" height="331" class="size-full wp-image-2231 stamp" /><p class="wp-caption-text">DD-WRT :: Dynamic DNS</p></div>
<p>Virtual Private Network unter &#8220;Services / VPN / PPTP-Server&#8221; konfigurieren.</p>
<div id="attachment_2233" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/DD-WRT_PPTP.png" alt="DD-WRT :: PPTP" title="DD-WRT_PPTP" width="442" height="389" class="size-full wp-image-2233 stamp" /><p class="wp-caption-text">DD-WRT :: PPTP</p></div>
<p>PPTP-Durchleitung unter &#8220;Sicherheit / VPN-Durchleitung&#8221; einschalten.</p>
<div id="attachment_2248" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/DD-WRT_VPN-Durchleitung.png" alt="DD-WRT :: VPN-Durchleitung" title="DD-WRT_VPN-Durchleitung" width="442" height="153" class="size-full wp-image-2248 stamp" /><p class="wp-caption-text">DD-WRT :: VPN-Durchleitung</p></div>
<p><strong>VPN-Client (Android)</strong></p>
<p>VPN unter &#8220;Einstellungen / Drahtlos und Netzwerke / VPN-Einstellungen / VPN hinzuf&#252;gen / PPTP-VPN hinzuf&#252;gen&#8221; &#8230;</p>
<div id="attachment_2238" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/AndroidPPTP-VPN-Hinzufuegen.png" alt="Android :: PPTP-VPN Hinzuf&#252;gen" title="AndroidPPTP-VPN-Hinzufuegen" width="442" height="248" class="size-full wp-image-2238 stamp" /><p class="wp-caption-text">Android :: PPTP-VPN Hinzuf&#252;gen</p></div>
<p>&#8230; und &#8220;VPN-Server festlegen&#8221; wie zuvor unter Hostname (s. VPN-Server DDNS) eingestellt konfigurieren.</p>
<div id="attachment_2240" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/AndroidPPTP-VPN-Einstellungen.png" alt="Android :: PPTP-VPN Einstellungen" title="AndroidPPTP-VPN-Einstellungen" width="442" height="248" class="size-full wp-image-2240 stamp" /><p class="wp-caption-text">Android :: PPTP-VPN Einstellungen</p></div>
<p>Die VPN-Verbindung kann &#252;ber &#8220;VPNs&#8221; / &#8220;Mit &#8230; verbinden&#8221; hergestellt werden.</p>
<div id="attachment_2242" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/AndroidPPTP-VPN-Verbinden.png" alt="Android :: PPTP-VPN Verbinden" title="AndroidPPTP-VPN-Verbinden" width="442" height="248" class="size-full wp-image-2242 stamp" /><p class="wp-caption-text">Android :: PPTP-VPN Verbinden</p></div>
<p><strong>VPN-Verbindung und jetzt &#8230;?</strong></p>
<p>Naja man k&#246;nnte mit dem Browser auf lokale Web-Dienste &#8230;</p>
<div id="attachment_2244" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/AndroidBrowser.png" alt="Android :: Browser" title="AndroidBrowser" width="442" height="248" class="size-full wp-image-2244 stamp" /><p class="wp-caption-text">Android :: Browser</p></div>
<p>&#8230; auf Netzwerkfreigaben mit ASTRO o.&#228;. &#8230;</p>
<div id="attachment_2253" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/AndroidASTRO.png" alt="Android :: ASTRO" title="AndroidASTRO" width="442" height="248" class="size-full wp-image-2253 stamp" /><p class="wp-caption-text">Android :: ASTRO</p></div>
<p>&#8230; oder gleich direkt mit ConnectBot auf einem Rechner im heimischen Netz zugreifen.</p>
<div id="attachment_2245" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/04/AndroidConnectBot.png" alt="Android :: ConnectBot" title="AndroidConnectBot" width="442" height="248" class="size-full wp-image-2245 stamp" /><p class="wp-caption-text">Android :: ConnectBot</p></div>
<p><strong>Fazit</strong></p>
<p>Nicht wirklich immer stabil, aber besser als keine Verbindung oder kennt jemand eine bessere Variante? :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2010/04/12/android-und-vpn-gefluester/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>HTC Tattoo &amp; Linux</title>
		<link>http://mgsimon.de/2009/11/02/htc-tattoo-linux/</link>
		<comments>http://mgsimon.de/2009/11/02/htc-tattoo-linux/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 20:12:04 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=1166</guid>
		<description><![CDATA[Kurz notiert: Android SDK herunterladen und entpacken. Device einrichten (Datei /etc/udev/rules.d/51-android.rules mit folgender Zeile erstellen). SUBSYSTEM==&#34;usb&#34;, SYSFS{idVendor}==&#34;0bb4&#34;, MODE=&#34;0666&#34; USB-Debugging aktivieren (Einstellungen / Anwendungen / Entwicklung). Dalvik Debug Monitor starten (ddms im Android SDK Unterverzeichnis /tools/). fertig &#8230;]]></description>
			<content:encoded><![CDATA[<p><strong>Kurz notiert:</strong></p>
<ul>
<li><a href="http://developer.android.com/index.html">Android SDK herunterladen und entpacken.</a></li>
<li>Device einrichten (Datei /etc/udev/rules.d/51-android.rules mit folgender Zeile erstellen).</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">SUBSYSTEM==&quot;usb&quot;, SYSFS{idVendor}==&quot;0bb4&quot;, MODE=&quot;0666&quot;</pre></div></div>

<ul>
<li>USB-Debugging aktivieren (Einstellungen / Anwendungen / Entwicklung).</li>
</ul>
<p style="text-align: center;"><img src="http://mgsimon.de/wp-content/uploads/2009/11/htc_tattoo_usb-debugging.png" alt="htc_tattoo_usb-debugging" title="htc_tattoo_usb-debugging" width="240" height="320" class="alignnone size-full wp-image-1178 stamp" /></p>
<ul>
<li>Dalvik Debug Monitor starten (ddms im Android SDK Unterverzeichnis /tools/).</li>
<li>fertig &#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/11/02/htc-tattoo-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Samsung Galaxy &amp; Galaxhero ROM</title>
		<link>http://mgsimon.de/2009/10/17/samsung-galaxy-galaxhero-rom/</link>
		<comments>http://mgsimon.de/2009/10/17/samsung-galaxy-galaxhero-rom/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 09:29:35 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=1070</guid>
		<description><![CDATA[Das ROM Galaxhero schnell und leicht &#8211; wie im Blog nodch.de beschrieben &#8211; installiert. Wireless Tether und vieles mehr &#8230; :-)]]></description>
			<content:encoded><![CDATA[<p>Das ROM Galaxhero schnell und leicht &#8211; wie im Blog <a href="http://www.nodch.de/galaxo-oder-galaxhero-rom-auf-samsung-galaxy-installieren/1207">nodch.de</a> beschrieben &#8211; installiert.</p>
<p style="text-align: center;"><img src="http://mgsimon.de/wp-content/uploads/2009/10/galaxhero.png" alt="galaxhero" title="galaxhero" width="320" height="480" class="alignnone size-full wp-image-1071 stamp" /></p>
<p>Wireless Tether und vieles mehr &#8230; :-)</p>
<p><span id="more-1070"></span></p>
<p style="text-align: center;"><img src="http://mgsimon.de/wp-content/uploads/2009/10/galaxhero_info.png" alt="galaxhero_info" title="galaxhero_info" width="320" height="480" class="alignnone size-full wp-image-1073 stamp" /></p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/10/17/samsung-galaxy-galaxhero-rom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

