<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Dariusz Łuksza &#187; android</title>
	<atom:link href="http://luksza.org/tag/android/feed/" rel="self" type="application/rss+xml" />
	<link>http://luksza.org</link>
	<description>myśli luźno zebrane ... ja i moja jaźń w intenecie</description>
	<lastBuildDate>Wed, 29 Feb 2012 10:11:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>

   <image>
    <title>Dariusz Łuksza</title>
    <url>http://0.gravatar.com/avatar/ed2d261ca5db36a17e690dc736dcd9ef.png?s=48</url>
    <link>http://luksza.org</link>
   </image>
		<item>
		<title>Android workshops in Szczecin</title>
		<link>http://luksza.org/2011/android-workshops-in-szczecin/</link>
		<comments>http://luksza.org/2011/android-workshops-in-szczecin/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 02:34:20 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[szczecin]]></category>
		<category><![CDATA[SzJUG]]></category>
		<category><![CDATA[worksjop]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=932</guid>
		<description><![CDATA[Recently we have huge moments in Java oriented area in Szczecin. W had JDK7 launch party &#8230; and now we (as a Szczecin Java User Group) are organizing all day long Android workshops. More information you can found on our mailing list and registration page.]]></description>
			<content:encoded><![CDATA[<p>Recently we have huge moments in Java oriented area in Szczecin. W had <em><a href="http://luksza.org/2011/java7-launch-party-szczecin/" target="_blank">JDK7 launch party</a></em> &#8230; and now we (as a <a href="http://szczecin.jug.pl/" target="_blank">Szczecin Java User Group</a>) are organizing all day long Android workshops. More information you can found <a href="https://groups.google.com/group/szczecin-jug/browse_thread/thread/a27a0a29c3dc3208" target="_blank">on our mailing list</a> and <a href="http://www.eventbrite.com/event/1921742985" target="_blank">registration page</a>.</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=932" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/android-workshops-in-szczecin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Android, Eclipse, Maven and (Robo)Guice together?</title>
		<link>http://luksza.org/2010/android-eclipse-maven-and-roboguice-together/</link>
		<comments>http://luksza.org/2010/android-eclipse-maven-and-roboguice-together/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 20:38:12 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[guice]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[roboguice]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=686</guid>
		<description><![CDATA[I&#8217;m sure that when you trays automated dependency management and application building/deploying you will never want to abandon this kind of comfort that it gives. The same situation is with dependency injection; when you will get it ideas. In &#8220;normal&#8221; desktop, web, or server side project&#8217;s integrating with such tools like maven and guice isn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure that when you trays automated dependency management and application building/deploying you will never want to abandon this kind of comfort that it gives. The same situation is with dependency injection; when you will get it ideas. In &#8220;normal&#8221; desktop, web, or server side project&#8217;s integrating with such tools like maven and guice isn&#8217;t that complicated like in Android projects.<br />
Android tooling is very consistent and the ADT plug-in isn&#8217;t integrated with maven. This isn&#8217;t a problem when application is relatively small, or when you don&#8217;t want to use continuous integration tools like Hudson. But when you enter Android world from &#8220;enterprise&#8221; web application like I do, you surely would like to use CI, DI and lots more of cool stuff that was available before.</p>
<p>In this post I&#8217;ll present simple Android application that will have Maven and Guice support.<br />
<span id="more-686"></span></p>
<h2>1. Eclipse, Android and Maven</h2>
<p>I assume that you already have installed and configured <em>ADT</em> and m2eclipse plugins. To have it working properly we need to install <a href="http://code.google.com/a/eclipselabs.org/p/m2eclipse-android-integration/" target="_blank">m2eclipse-android-integration</a> from theirs update site:</p>

<div class="wp_syntax"><div class="code"><pre class="url" style="font-family:monospace;">http://m2eclipse-android-integration.googlecode.com/svn/trunk/com.byluroid.eclipse.maven.android.update/</pre></div></div>

<h2>2. Create a simple android project</h2>
<p>Using Android project creator create new project and create a <em>pom.xml</em> file and configure <em>maven-android-plugin</em>. Here is a sample minimal <em>pom.xml</em>:</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;project</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://maven.apache.org/POM/4.0.0&quot;</span> <span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://maven.apache.org/POM/4.0.0</span>
<span style="color: #009900;">                               http://maven.apache.org/maven-v4_0_0.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;modelVersion<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>4.0.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/modelVersion<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.luksza.android<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>exampleapplication<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>0.0.1-SNAPSHOT<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;packaging<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>apk<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/packaging<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ExampleApplication<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependencies<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.google.android<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>android<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.5_r3<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependencies<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;build<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sourceDirectory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>src<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sourceDirectory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugins<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.jayway.maven.plugins.android.generation2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>maven-android-plugin<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2.6.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sdk<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;path<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>${path-to-android-sdk}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/path<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;platform<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>3<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/platform<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sdk<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;extensions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/extensions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>maven-compiler-plugin<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.5<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.5<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugins<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/build<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/project<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Remember <strong>replace ${path-to-android-sdk}</strong> with proper path. After that there are only two things that should to be done. From project context menu and select <em>&#8220;Maven&#8221; -> &#8220;Enabled dependency management&#8221;</em> and secondly <em>&#8220;Maven&#8221; -> &#8220;Update project configuration&#8221;</em> and remove standard <em>JRE</em> library from project build path.<br />
That was quite simple isn&#8217;t it? There is one additional thing worth to notice, if yours application would be using <em>Google Maps API</em> you should use project <a href="http://github.com/mosabua/maven-android-sdk-deployer" target="_blank">maven-android-sdk-deployer</a> to automatically install proper jar&#8217;s in local m2 repository. Whole installation process is described in <a href="https://github.com/mosabua/maven-android-sdk-deployer/blob/master/README.markdown" target="_blank">README.markdown</a> file.</p>
<h2>3. Android and Guice</h2>
<p>Now when we have enabled dependency management we can add some dependencies <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . First of all we will need <em>Guice 2.0</em> without <em>AOP</em> (we cannot use <em>Aspect Oriented Programming on Android</em>). Because this jar isn&#8217;t available in any known maven repository we should download it from <a href="http://code.google.com/p/google-guice/downloads/list" target="_blank">Guice download site</a> and install it in our local repository:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">mvn install:install-file -Dfile=./guice-2.0-no_aop.jar -DgroupId=com.google.inject\
      -DartifactId=guice-no_aop -Dversion=2.0 -Dpackaging=jar -DgeneratePom=true</pre></div></div>

<p>after that we can add new dependency to ours <em>pom.xml</em></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;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.google.inject<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>guice-no_aop<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Theoretically we can use Guice without any addons &#8230; but using <a href="http://code.google.com/p/roboguice/" target="_blank">Roboguice</a> we can achieve lots more than simple dependency injection eg. using <em>@InjectView</em> and <em>@InjectResource</em> we can easily inject views and resources without casts. Also there are preconfigured <em>Guice</em> modules that have configured standard bindings. To add <em>Roboguice</em> into ours project first we should define new repository from with it will be donloaded</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;repositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>maven2-repository.dev.java.net<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Java.net Repository for Maven<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://download.java.net/maven/2/<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Secondly the dependency should be also added</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;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>roboguice<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>roboguice<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.1-SNAPSHOT<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>To have everything working we should create new class eg. <em>ExampleApplication</em> that will extend <em>roboguice.application.RoboApplication</em></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">org.luksza.android</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">roboguice.application.RoboApplication</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> ExampleApplication <span style="color: #000000; font-weight: bold;">extends</span> RoboApplication <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> addApplicationModules<span style="color: #009900;">&#40;</span>List<span style="color: #339933;">&lt;</span>Module<span style="color: #339933;">&gt;</span> modules<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>In method <em>addApplicationModules</em> we can add any module that extends <em>com.google.inject.Module</em>. In our example we don&#8217;t need to add any extra module. Next we should edit <em>AndroidManifest.xml</em> file and change line</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;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></pre></div></div>

<p>into</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;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: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.ExampleApplication&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div>

<p>If we would like to benefit from <em>@InjectView</em> or <em>@InjectResource</em> annotation our activity class should extends <em>roboguice.activity.RoboActivity</em> instead of <em>android.app.Activity</em>. It is very <strong>important to notice that any injection can occur after <em>setContentView()</em> method is called</strong>. Therefor we cannot inject main activity layout! Here is an example <em>ExampleActivity</em> class that have injected button:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">org.luksza.android</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">roboguice.activity.RoboActivity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">roboguice.inject.InjectView</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.widget.Button</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> ExampleActivity <span style="color: #000000; font-weight: bold;">extends</span> RoboActivity <span style="color: #009900;">&#123;</span>
	@InjectView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span>
	<span style="color: #003399;">Button</span> button<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><span style="color: #000000; font-weight: bold;">final</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;
		button.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Injected button&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>That is all I want to share with you. I&#8217;ve hope that this information would be useful for you <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=686" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2010/android-eclipse-maven-and-roboguice-together/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Linux freak &#8230;</title>
		<link>http://luksza.org/2010/linux-freak/</link>
		<comments>http://luksza.org/2010/linux-freak/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 18:38:29 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[różne]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[mpc]]></category>
		<category><![CDATA[rockbox]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=542</guid>
		<description><![CDATA[W sumie od dawana wiedziałem, że nie jestem normalny. Daaaawno temu pożegnałem się z Windows&#8217;em i jako głównego systemu operacyjnego od tamtej pory używam Linuksa. Dziś za to dopadła mnie dość refleksyjna myśl &#8230; na co dzień używam 4 urządzeń elektronicznych: macbook&#8217;a komputera w pracy telefonu odtwarzacza MP3 (a właściwie to MPC, nie MP3) Na [...]]]></description>
			<content:encoded><![CDATA[<p>W sumie od dawana wiedziałem, że nie <em>jestem normalny</em>. Daaaawno temu pożegnałem się z Windows&#8217;em i jako głównego systemu operacyjnego od tamtej pory używam Linuksa. Dziś za to dopadła mnie dość refleksyjna myśl &#8230; na co dzień używam 4 urządzeń elektronicznych:</p>
<ul>
<li>macbook&#8217;a</li>
<li>komputera w pracy</li>
<li>telefonu</li>
<li>odtwarzacza MP3 (a właściwie to MPC, nie MP3)</li>
</ul>
<p>Na wszystkich tych urządzeniach nie podzielnie króluje Linux:</p>
<ul>
<li>macbook&#8217;a skolonizowało Gentoo</li>
<li>komp w pracy też nie ugiął się przed naporem Gentoo</li>
<li>telefon jest obsługiwany przez Android&#8217;a który bazuje na Linuksie</li>
<li>na odtwarzaczu działa RockBox (po to żeby odtwarzać MPC SV8)</li>
</ul>
<p>Możliwe, że nie jestem zwyczajnym użytkownikiem &#8230; ale jak widać żyję i mam się całkiem dobrze <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Odpowiadając od razu na wścibskie pytania: nie, nie zamierzam instalować pingwinka na mikrofalówce czy też pralce <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=542" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2010/linux-freak/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Inżynierka v0.2</title>
		<link>http://luksza.org/2010/inzynierka-v0-2/</link>
		<comments>http://luksza.org/2010/inzynierka-v0-2/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 23:26:04 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[polish]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[inzynierka]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=512</guid>
		<description><![CDATA[Kolejna porcja screenshot&#8217;ów z &#8220;pracy inżynierskiej&#8221; Jak widać doszła obsługa menu, a w niej: My location &#8211; automatycznie centruje mapę na naszej pozycji Start scan(/Stop scan) &#8211; &#8220;włącza/wyłącza&#8221; wątek skanujący List AP &#8211; wyświetla listę wszystkich Access Point&#8217;ów które w czasie działania aplikacji znajdowały się w zasięgu Setting &#8211; wyświetla ustawienia aplikacji (ta pozycja wymaga [...]]]></description>
			<content:encoded><![CDATA[<p>Kolejna porcja screenshot&#8217;ów z &#8220;pracy inżynierskiej&#8221; <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://luksza.org/wp-content/uploads/2010/03/inz-menu-view.png"><img class="aligncenter size-full wp-image-513" title="inz-menu-view" src="http://luksza.org/wp-content/uploads/2010/03/inz-menu-view.png" alt="" width="320" height="480" /></a></p>
<p>Jak widać doszła obsługa menu, a w niej:</p>
<ul>
<li>My location &#8211; automatycznie centruje mapę na naszej pozycji</li>
<li>Start scan(/Stop scan) &#8211; &#8220;włącza/wyłącza&#8221; wątek skanujący</li>
<li>List AP &#8211; wyświetla listę wszystkich Access Point&#8217;ów które w czasie działania aplikacji znajdowały się w zasięgu</li>
<li>Setting &#8211; wyświetla ustawienia aplikacji (ta pozycja wymaga jeszcze implementacji)</li>
</ul>
<p>Trzy z czterech dostępnych akcji są oprogramowane, zostało mi jeszcze stworzyć odpowiednie menu z ustawieniami aplikacji.</p>
<p><img class="aligncenter size-full wp-image-514" title="inz-ap-view" src="http://luksza.org/wp-content/uploads/2010/03/inz-ap-view.png" alt="" width="320" height="480" /></p>
<p>Tak wygląda lista wszystkich &#8220;odkrytych&#8221; Access Point&#8217;ów, z lewej strony widać grafikę/piktogram opisujący jakość sygnału danej sieci (w założeniach jest też, żeby ten sam obrazek opisywał poziom zabezpieczeń danej sieci). Obok jest czytelna nazwa punktu dostępowego (czyli SSID). Punkty dostępowe rozróżniane są po BSSID czyli adresie fizycznym urządzenia, więc w szczególnych przypadkach na liście mogą pojawić się kilka pozycji o tej samej nazwie. W każdy element na liście można &#8220;kliknąć&#8221; i uzyskać widok szczegółowy.</p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } -->Muszę się dowiedzieć o status licencyjny grafik dołączonych do Androida … <img src='http://luksza.org/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
<p><img class="aligncenter size-full wp-image-515" title="inz-ap-detail-view" src="http://luksza.org/wp-content/uploads/2010/03/inz-ap-detail-view.png" alt="" width="320" height="480" /></p>
<p>Ostatni screenshot, pokazuje wspomniany już &#8220;widok szczegółowy&#8221;. Mamy tutaj szczegółowe dane odnośnie wybranego punktu dostępowego. Jak można zauważyć widok ten wymaga jeszcze dopracowania, gdyż nie wszystkie dane są w pełni widoczne.</p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } -->To na tyle, więcej za jakiś czas <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=512" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2010/inzynierka-v0-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Inżynierka v0.1</title>
		<link>http://luksza.org/2010/inzynierka-v0-1/</link>
		<comments>http://luksza.org/2010/inzynierka-v0-1/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 21:48:10 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[polish]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[inzynierka]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=479</guid>
		<description><![CDATA[Oto pierwszy screenshot z mojej pracy inżynierskiej Aplikacja posiada już następujące funkcjonalności: Potrafi sprawdzić stan WiFi oraz w razie potrzeby sama go włączyć (nie pytając użytkownika o zdanie &#8230; bo po co ? jeżeli się uruchamia taką aplikację wiadomo, że sieć bezprzewodowa musi być włączona ) Potrafi sprawdzić status usługi GPS oraz poprosić użytkownika o [...]]]></description>
			<content:encoded><![CDATA[<p>Oto pierwszy screenshot z mojej pracy inżynierskiej <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://luksza.org/wp-content/uploads/2010/03/inz-1.png"><img class="aligncenter size-full wp-image-480" title="inz-1" src="http://luksza.org/wp-content/uploads/2010/03/inz-1.png" alt="" width="320" height="480" /></a></p>
<p>Aplikacja posiada już następujące funkcjonalności:</p>
<ul>
<li>Potrafi sprawdzić stan WiFi oraz w razie potrzeby sama go włączyć (nie pytając użytkownika o zdanie &#8230; bo po co ? jeżeli się uruchamia <strong>taką</strong> aplikację wiadomo, że sieć bezprzewodowa musi być włączona <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</li>
<li>Potrafi sprawdzić status usługi GPS oraz poprosić użytkownika o jej włączenie (ponieważ android może za zgodą użytkownika wysyłać dane lokalizacyjne go Google&#8217;a warto żeby użytkownik sam włączył usługę, ewentualnie wyłączył moją aplikację)</li>
</ul>
<ul>
<li>Wyświetla aktualną pozycję użytkownika (to jest właśnie ta gwiazdka na środku ekranu)</li>
<li>Automatycznie co pół sekundy skanuje eter w poszukiwaniu sieci bezprzewodowych.</li>
<li>W prawym górnym rogu umieszczona jest licznik aktualnie wykrytych sieci</li>
<li>W prawym dolnym rogu umieszczony jest licznik sieci które aplikacja &#8220;mniej więcej&#8221; zlokalizowała (ew. potrafiła zlokalizować)</li>
</ul>
<p>Przewidywane funkcjonalności:</p>
<ul>
<li>Automatyczne wycentrowanie mapy na pozycję użytkownika (gwiazdkę)</li>
<li>Dodanie możliwości konfiguracji (chociażby możliwość zmiany interwału skanowania)</li>
<li>Obsługa przycisku &#8220;menu&#8221;</li>
<li>Zapisywanie wyników aplikacji w &#8220;jakimś&#8221; formacie</li>
<li>Kalibracja aplikacji</li>
<li>Algorytm lokalizacji punktów na podstawie sygnału WiFi oraz lokalizacji użytkownika</li>
</ul>
<p>Teoretycznie powinno już być z górki, gdyż już w miarę zaprzyjaźniłem się z SDK oraz API android&#8217;a. Największym wyzwaniem będzie główna część czyli implementacja (raz opracowanie) algorytmu pozwalającego na zlokalizowanie access point&#8217;a; jego zarysy już kłębią się mi w głowie z tym, że posiada on jeszcze kilka słabostek.</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=479" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2010/inzynierka-v0-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Inżynierka &#8211; praca wre ;)</title>
		<link>http://luksza.org/2010/inzynierka-praca-wre/</link>
		<comments>http://luksza.org/2010/inzynierka-praca-wre/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 19:30:33 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[inzynierka]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=470</guid>
		<description><![CDATA[Zmiana platformy implementacyjnej znacząco przyśpieszyła prace nad aplikacją Dziś w ciągu nie całych 2 godzin udało się mi wystartować cały projekt oraz uruchomić usługę Google Maps, GPS oraz zintegrować całość ze sobą. Jedyną rzeczą jaką (na razie) moja aplikacja wykonuje, jest umieszczenie markera (w postaci maskotki androida &#8211; robota) na odpowiedniej szerokości i długości geograficznej [...]]]></description>
			<content:encoded><![CDATA[<p>Zmiana platformy implementacyjnej znacząco przyśpieszyła prace nad aplikacją <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Dziś w ciągu nie całych 2 godzin udało się mi wystartować cały projekt oraz uruchomić usługę Google Maps, GPS oraz zintegrować całość ze sobą. Jedyną rzeczą jaką (na razie) moja aplikacja wykonuje, jest umieszczenie markera (w postaci maskotki androida &#8211; <em>robota</em>) na odpowiedniej szerokości i długości geograficznej oraz przesunięcie w to miejsce mapy. Czyli aktualnie geo-lokuje telefon ;&gt;</p>
<p>Całość wymaga jeszcze dopracowania, gdyż jest to tylko szybki szkic &#8230; ale posiada bardzo ważna cecha, DZIAŁA <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Przede mną jeszcze sporo pracy:</p>
<ul>
<li>Ustalenie odpowiednich interface&#8217;ów</li>
<li>Zaprojektowanie architektury aplikacji</li>
<li>Obsługa wyjątków (reakcja na włączenie/wyłączenie GPS&#8217;u, WiFi itp.)</li>
<li>Obsługa WiFi</li>
<li>Reprezentacja zebranych danych na mapie</li>
<li>Zapis całości w formie pliku wynikowego czy tez map w Google Maps</li>
</ul>
<p>Na chwilę obecną tylko tyle przychodzi mi do głowy, pewnie jeszcze sporo rzeczy wyjdzie w &#8220;praniu&#8221;.</p>
<p>Do <a href="http://luksza.org/2010/02/16/android-here-i-come-inzynierka/" target="_blank">mojego zbioru przydatnych linków</a> doszły dwa nowe elementy, głównie dzięki nim udało się mi tak szybko przebrnąć przez tą część <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=470" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2010/inzynierka-praca-wre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Android &#8230; here I come ! &#8211; inżynierka</title>
		<link>http://luksza.org/2010/android-here-i-come-inzynierka/</link>
		<comments>http://luksza.org/2010/android-here-i-come-inzynierka/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 21:48:53 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[polish]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[inzynierka]]></category>
		<category><![CDATA[poczatki]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=465</guid>
		<description><![CDATA[Siedem semestrów nauki już za mną, czas więc na napisanie pracy inżynierskiej &#8230; a czasu zostało nie wiele, bo do końca kwietnia. Tak więc czeka mnie teraz wzmożony okres ;&#62;. Moje ambitne plany zakładają do końca lutego stworzyć aplikację na tyle, żeby można było rozpocząć badania (oczywiście w między czasie aplikacja będzie musiała być ulepszana). [...]]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } -->Siedem semestrów nauki już za mną, czas więc na napisanie pracy inżynierskiej &#8230; a czasu zostało nie wiele, bo do końca kwietnia. Tak więc czeka mnie teraz wzmożony okres ;&gt;. Moje ambitne plany zakładają do końca lutego stworzyć aplikację na tyle, żeby można było rozpocząć badania (oczywiście w między czasie aplikacja będzie musiała być ulepszana). Cały marzec mam zamiar poświęcić na przeprowadzenie &#8220;badań naukowych&#8221;  oraz &#8220;napisanie&#8221; pracy.</p>
<p>Jeżeli wszystko pójdzie zgodnie z ambitnym planem to w połowie kwietnia powinienem złożyć gotową pracę &#8230; zobaczymy jak to wyjdzie.</p>
<p>W pierwotnej wersji moja praca inżynierska miała wiązać się z OpenMoko &#8230; niestety semestr walki z JNA nie przyniósł pożądanych efektów dlatego postanowiłem zmienić platformę na &#8220;bardziej dojrzałą&#8221; (zwłaszcza, że w między czasie nabyłem G1).</p>
<p>Taki obrót sytuacji spowodował, że na chwilę obecną nie posiadam nawet zarysu aplikacji ;&gt;. Ale czym tu się przejmować, nie ma co biadolić czas zabierać się za robotę <img src='http://luksza.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>IMHO bardzo dobrym quick-start&#8217;em jest <a href="http://www.youtube.com/watch?v=rm-hNlTD1H0" target="_blank">ta dwugodzinna</a> prezentacja. Zawiera ona dość przekrojową wiedzę potrzebną do tego żeby szybko wystartować z projektem; brakuje w niej opisu manifestu aplikacji, poziomów dostępu do danych i sprzętu &#8230; to będzie trzeba uzupełnić na własną rękę.</p>
<p>Oprócz tego standardową kopalnią wiedzy na temat androida jest strona <a href="http://developer.android.com/" target="_blank">developer.android.com</a>, gdzie dostępne są prezentacje z Google I/O oraz inne sponsorowane przez Google jak również dostępna jest pełna dokumentacja.</p>
<p>W tym poście postaram się agregować wszystkie przydatne linki które okażą się pomocne podczas tworzenia aplikacji. Więc jeżeli interesujesz się tym tematem to zapraszam do zaglądania tutaj &#8230; podobnie jeżeli Ty posiadasz jakieś interesujące materiały nie krępuj się umieścić link do nich w komentarzu <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<ul>
<li><a href="http://developer.android.com/guide/tutorials/views/hello-mapview.html" target="_blank">Tutorial</a> pokazujący wykorzystanie widgetu MapView dostępnego w Google APIs (czyli dodatku do standardowego API androida)</li>
<li><a href="http://foo.jasonhudgins.com/2007/12/cruising-around-with-android.html" target="_blank">Szybki TUT</a> jak rozpocząć &#8220;zabawy&#8221; z GPS&#8217;em</li>
</ul>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=465" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2010/android-here-i-come-inzynierka/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Android upgrade &#8230; kernel &gt;2mb</title>
		<link>http://luksza.org/2008/android-upgrade-kernel-2mb/</link>
		<comments>http://luksza.org/2008/android-upgrade-kernel-2mb/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 23:23:37 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[polish]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[FreeRunner]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=191</guid>
		<description><![CDATA[Ostatni update Android&#8217;a na OpenMoko dostępny jest w katalogu Sean McNeil&#8216;a na people.openmoko.org &#8230; niestety uImage (kernel) ma ponad 2mb i nie można go bez problemowo wrzucić na FreeRunner&#8217;a gdyż domyślnie uboot odczytuje maksymalnie 2mb jądra (co powoduje błąd sumy CRC) &#8230; ale przecież to jest OpenMoko, więc: boot&#8217;ujemy Neo do NOR&#8217;a lub  NAND&#8217;a (tj. [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatni update Android&#8217;a na OpenMoko dostępny jest w katalogu <a href="http://people.openmoko.org/sean_mcneil/" target="_blank">Sean McNeil</a>&#8216;a na <a href="http://people.openmoko.org/" target="_blank">people.openmoko.org</a> &#8230; niestety uImage (kernel) ma ponad 2mb i nie można go bez problemowo wrzucić na FreeRunner&#8217;a gdyż domyślnie uboot odczytuje maksymalnie 2mb jądra (co powoduje błąd sumy CRC) &#8230; ale przecież to jest OpenMoko, więc:</p>
<ol>
<li>boot&#8217;ujemy Neo do NOR&#8217;a lub  NAND&#8217;a (tj. przytrzymujemy przyciski AUX i POWER, kolejność wciśnięcia jest ważna gdyż od niej  zależy to do jakiego rodzaju pamięci się zabootujemy; więcej na wiki OpenMoko)</li>
<li>podpinamy Moko przez usb do komputera</li>
<li>odpalamy komendę:
<pre>screen /dev/tty.usbmodem0000001</pre>
<p>(nazwa urządzenia wzięta jest z MacOs X&#8217;a; na którym obecnie (sic!) pracuję <img src='http://luksza.org/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> )</li>
<li>to powinno nas podłączyć do shell&#8217;a, następnie wklepujemy tą komende:
<pre>setenv bootcmd setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel 0x300000\; bootm 0x32000000</pre>
<p>modyfikuje ona tablicę zmiennych ENV, dokładniej wpis dla bootcmd w taki sposób, że pozwala na odczytanie do 3mb danych dla kernela</li>
<li>teraz wystarczy:
<pre>saveenv</pre>
<p>i już możemy się cieszyć z możliwości zabotowania jądra większego niż 2mb ;&gt;</li>
</ol>
<p>Modyfikacja zmiennych uboot&#8217;a może &#8220;zabić&#8221; Twoje Neo, więc radzę robić to z rozwagą; jeżeli nie wiesz co robisz to po prostu tego nie rób !</p>
<p>Opis rozwiązania problemu znalazłem w <a href="http://lists.openmoko.org/nabble.html#nabble-td1498704" target="_blank">tym wątku</a>.</p>
<p>Miłej i rozważnej zabawy ;&gt;</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=191" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2008/android-upgrade-kernel-2mb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>FreeRunner &amp; Android &#8230; i klawiatura</title>
		<link>http://luksza.org/2008/freerunner-android-i-klawiatura/</link>
		<comments>http://luksza.org/2008/freerunner-android-i-klawiatura/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 19:53:35 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[polish]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[FreeRunner]]></category>
		<category><![CDATA[klawiatura]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=187</guid>
		<description><![CDATA[Tak już jest, świeżutki obraz Androida z software&#8217;owa klawiatura, do pobrania i flash&#8217;owania ;&#62; Przyznaje, że działa &#8230; można nawet odebrać połączenie ;&#62; już nie można bo z niewiadomych przyczyn moko nie wpina się do sieci GSM. Nie działa również Bluetooth bo nie można włączyć urządzenia; do tego klawiatura jest strasznie wolna i bez stylusa [...]]]></description>
			<content:encoded><![CDATA[<p>Tak już jest, świeżutki obraz Androida z software&#8217;owa klawiatura, do <a href="http://people.openmoko.org/sean_mcneil/" target="_blank">pobrania</a> i flash&#8217;owania ;&gt;</p>
<p>Przyznaje, że działa &#8230; <span style="text-decoration: line-through;">można nawet odebrać połączenie ;&gt;</span> już nie można bo z niewiadomych przyczyn moko nie wpina się do sieci GSM. Nie działa również Bluetooth bo nie można włączyć urządzenia; do tego klawiatura jest strasznie wolna i bez stylusa się nie obejdzie &#8230; cóż i tak dobrze jest widoczny postęp <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=187" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2008/freerunner-android-i-klawiatura/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>FreeRunner &amp; Android</title>
		<link>http://luksza.org/2008/freerunner-android/</link>
		<comments>http://luksza.org/2008/freerunner-android/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 12:52:05 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[polish]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[FreeRunner]]></category>
		<category><![CDATA[OpenMoko]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=183</guid>
		<description><![CDATA[Już od dłuższego czasu dostępny jest Google Android na FreeRunner&#8217;rze. Instalacja niestety nie jest taka prosta. Po pierwsze trzeba znaleźć obraz rootfs&#8217;a &#8230; co w cale nie jest takie proste (spędziłem nad tym troche czasu ;&#62;) &#8230; ale nie po to pisze o tym żeby inni się męczyli tak więc &#8230; z sąd http://t0ny.net/openmoko/images/android/ zaciągamy [...]]]></description>
			<content:encoded><![CDATA[<p>Już od dłuższego czasu dostępny jest <a href="http://code.google.com/android/" target="_blank">Google Android</a> na FreeRunner&#8217;rze. Instalacja niestety nie jest taka prosta. Po pierwsze trzeba znaleźć obraz rootfs&#8217;a &#8230; co w cale nie jest takie proste (spędziłem nad tym troche czasu ;&gt;) <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8230; ale nie po to pisze o tym żeby inni się męczyli tak więc &#8230; z sąd <a href="http://t0ny.net/openmoko/images/android/" target="_blank">http://t0ny.net/openmoko/images/android/</a> zaciągamy uImage i rootfs. W między czasie trzeba przygotować kartę SD &#8230; tak, tak, android wymaga karty SD i to po partycjonowanej w specjalny sposób &#8230; kartę dzielimy na 2 partycje, pierwsza vfat lub ext2 do zapisu muzyki/filmów itp (ponoć maksymalny jej rozmiar to 256MB, ja nie próbowałem robić większej), druga partycja to koniecznie ext3, na niej android zapisuje swoje ustawienia; dodatkowo potrzebna jest karta SIM z wyłączonym kodem PIN. Może  być również potrzebny nowszy u-boot (ja użyłem tego z OM2008.9). Po udanym flash&#8217;owaniu trzeba się uzbroić w cierpliwość gdyż system startuje dość długo.</p>
<p>Czego możemy się spodziewać ? Nie działającego suspend&#8217;u (od razu  trzeba wyłączyć wyłączanie ekranu, gdyż po tej czynności android wchodzi w stan uśpienia), nie działającego WiFi, GPS&#8217;u i <span style="text-decoration: line-through;">Bluethooth&#8217;a</span> (działa ale nie można wpisać klucza z powodu braku klawiatury),  cichego dźwięku podczas rozmowy (dodatkowo nie znalazłem nigdzie ustawień mogących to poprawić &#8230; może za mało szukałem <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Ogólnie system w miarę działa &#8230; brak jest tylko klawiatury ekranowej, ale można takowoą doinstalować &#8230; oczywiście jak uda się nam w jakiś sposób połączyć z internetem <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Powodzenia i miłej zabawy <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>PS. dla bardziej dociekliwych polecam: <a href="http://onlinedev.blogspot.com/search/label/android" target="_blank">http://onlinedev.blogspot.com/search/label/android</a></p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=183" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2008/freerunner-android/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Database Caching 15/23 queries in 0.029 seconds using disk: basic

Served from: luksza.org @ 2012-05-22 22:58:07 -->
