tag:blogger.com,1999:blog-76812861596081794752024-03-08T16:51:30.920+08:00Android Dev@3THDEVBlog for an Android Developer, in Hong KongAnonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.comBlogger31125tag:blogger.com,1999:blog-7681286159608179475.post-2320578534232936292013-05-28T14:09:00.000+08:002013-05-28T15:07:25.900+08:00Setup your own PPTP VPN server for Android<br />
<h3>
A. PPTP VPN server setup</h3>
<br />
<span style="font-family: Courier New,Courier,monospace;"><span style="font-weight: bold;">1. Install the VPN server</span><br />
</span>
<br />
<table border="1" cellpadding="2" cellspacing="2" style="font-family: Courier New,Courier,monospace; text-align: left; width: 100%;">
<tbody>
<tr>
<td style="background-color: #fcf0c2; vertical-align: top;">#>
apt-get install pptpd</td>
</tr>
</tbody>
</table>
<span style="font-family: Courier New,Courier,monospace;"></span><br />
<br />
<span style="font-family: Courier New,Courier,monospace;">2. <span style="font-weight: bold;">Assign IP address for VPN client</span></span><br />
<table border="1" cellpadding="2" cellspacing="2" style="font-family: Courier New,Courier,monospace; text-align: left; width: 100%;">
<tbody>
<tr>
<td style="background-color: #fcf0c2; vertical-align: top;">#>
vi /etc/pptpd.conf<br />
<br />
localip 10.0.0.1<br />
remoteip 10.0.0.100-200</td>
</tr>
</tbody>
</table>
<span style="font-family: Courier New,Courier,monospace;"></span><br />
<br />
<span style="font-family: Courier New,Courier,monospace;"><span style="font-weight: bold;">3. Create VPN User &Password </span></span>
<br />
<table border="1" cellpadding="2" cellspacing="2" style="font-family: Courier New,Courier,monospace; text-align: left; width: 100%;">
<tbody>
<tr>
<td style="background-color: #fcf0c2; vertical-align: top;">#>
vi /etc/ppp/chap-secrets<br />
<br />
# client server
secret
IP addresses<br />
user1 pptpd password1 *<br />
user2 pptpd password2 *</td>
</tr>
</tbody>
</table>
<span style="font-family: Courier New,Courier,monospace;"></span><br />
<br />
<span style="font-family: Courier New,Courier,monospace; font-weight: bold;">4.
Define DNS for VPN client</span><br />
<table border="1" cellpadding="2" cellspacing="2" style="font-family: Courier New,Courier,monospace; text-align: left; width: 100%;">
<tbody>
<tr>
<td style="background-color: #fcf0c2; vertical-align: top;">#>
vi /etc/ppp/pptpd-options<br />
<br />
ms-dns 8.8.8.8<br />
ms-dns 8.8.4.4</td>
</tr>
</tbody>
</table>
<span style="font-family: Courier New,Courier,monospace;"></span><br />
<br />
<span style="font-family: Courier New,Courier,monospace; font-weight: bold;">5.
PPTP setup completed, Restart the service.</span><br />
<table border="1" cellpadding="2" cellspacing="2" style="font-family: Courier New,Courier,monospace; text-align: left; width: 100%;">
<tbody>
<tr>
<td style="background-color: #fcf0c2; vertical-align: top;">#>
service pptpd restart</td>
</tr>
</tbody>
</table>
<span style="font-family: Courier New,Courier,monospace;"></span><br />
<br />
<span style="font-family: Courier New,Courier,monospace; font-weight: bold;">6.
Enable IP Forwarding, and apply changes. </span><br />
<table border="1" cellpadding="2" cellspacing="2" style="font-family: Courier New,Courier,monospace; text-align: left; width: 100%;">
<tbody>
<tr>
<td style="background-color: #fcf0c2; vertical-align: top;">#>
vi /etc/sysctl.conf<br />
<br />
net.ipv4.ip_forward = 1<br />
<br />
#> sysctl -p</td>
</tr>
</tbody>
</table>
<span style="font-family: Courier New,Courier,monospace;"></span><br />
<br />
<span style="font-family: Courier New,Courier,monospace;"><strong>7. Create NAT
for iptables (most important!!!)</strong></span><br />
<table border="1" cellpadding="2" cellspacing="2" style="font-family: Courier New,Courier,monospace; text-align: left; width: 100%;">
<tbody>
<tr>
<td style="background-color: #fcf0c2; vertical-align: top;">#>
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE &&
iptables-save</td>
</tr>
</tbody>
</table>
<span style="font-family: Courier New,Courier,monospace;"></span><br />
<br />
<span style="font-family: Courier New,Courier,monospace;"><strong>8. Optional,
enable communication between VPN clients</strong></span><br />
<table border="1" cellpadding="2" cellspacing="2" style="font-family: Courier New,Courier,monospace; text-align: left; width: 100%;">
<tbody>
<tr>
<td style="background-color: #fcf0c2; vertical-align: top;">#>
iptables --table nat --append POSTROUTING --out-interface ppp0 -j
MASQUERADE<br />
#> iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT<br />
#> iptables --append FORWARD --in-interface eth0 -j ACCEPT</td>
</tr>
</tbody>
</table>
<span style="font-family: Courier New,Courier,monospace;"></span><br />
<span style="font-family: Courier New;"></span><br />
<span style="font-family: Courier New;"></span><br />
<ul>
<li>Steps above assume you have basic Linux Knowledge</li>
<li>Steps are based on Ubuntu 11.04</li>
<li>PPTP log was in "/var/log/syslog".</li>
<li>use "last |grep ppp" to show users logged in</li>
</ul>
<br />
<h3>
B. Android VPN setup</h3>
<br />
<strong><span style="font-family: Courier New;">1. In Android, go to "Setting" > "More" > "VPN", and type in Info as below.</span></strong><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-oR4z0JOrsXI/UaRXVYRrJ3I/AAAAAAAAAWA/i6uB4haYv9w/s1600/Screenshot_2013-05-28-14-55-09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-oR4z0JOrsXI/UaRXVYRrJ3I/AAAAAAAAAWA/i6uB4haYv9w/s320/Screenshot_2013-05-28-14-55-09.png" width="180" /></a></div>
<strong><span style="font-family: Courier New;"></span></strong><br />
<strong><span style="font-family: Courier New;"></span></strong><br />
<strong><span style="font-family: Courier New;">2. Click on the connection your just created and type in username & password as defined in A.3.</span></strong><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-EzqkblDmBU8/UaRXavl3JRI/AAAAAAAAAWI/D2PP6qTZ1Pk/s1600/Screenshot_2013-05-28-14-55-49.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://3.bp.blogspot.com/-EzqkblDmBU8/UaRXavl3JRI/AAAAAAAAAWI/D2PP6qTZ1Pk/s320/Screenshot_2013-05-28-14-55-49.png" width="180" /></a></div>
<br />
<br />
<strong><span style="font-family: Courier New;">3. After successful login, you will see a Key icon in Notification bar, plus a "VPN Activiated" message.</span></strong><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-oibtZfa3Szw/UaRXfJ-DTyI/AAAAAAAAAWQ/bIsI0MRRnNk/s1600/Screenshot_2013-05-28-15-01-08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://1.bp.blogspot.com/-oibtZfa3Szw/UaRXfJ-DTyI/AAAAAAAAAWQ/bIsI0MRRnNk/s320/Screenshot_2013-05-28-15-01-08.png" width="180" /></a></div>
<strong><span style="font-family: Courier New;"></span></strong><br />
<strong><span style="font-family: Courier New;"></span></strong><br />
<strong><span style="font-family: Courier New;"></span></strong><br />
<strong><span style="font-family: Courier New;"></span></strong><br />
Ref :
https://www.digitalocean.com/community/articles/how-to-setup-your-own-vpn-with-pptp<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com2tag:blogger.com,1999:blog-7681286159608179475.post-20050790341136045912013-05-10T14:57:00.000+08:002013-05-10T14:58:00.496+08:00Subscribe Facebook / Facebook Page by RSS Feed<div>
<strong><u>1. Prepare you Facebook page URL</u></strong></div>
i.e. (https://www.facebook.com/3thdev)<br />
<div>
<div>
<br /><strong><u>2. Get Facebook ID</u></strong></div>
<div>
<br />Visit the page http://findmyfacebookid.com/ . It will translate your Facebook URL into Facebook ID<br /></div>
<div>
<strong><u>3. Prepare the RSS URL</u></strong></div>
<div>
Append your desired Facebook ID into the following link</div>
<div>
<br />http://www.facebook.com/feeds/page.php?format=atom10&id=<FACEBOOK-ID><br />http://www.facebook.com/feeds/page.php?format=rss20&id=<FACEBOOK-ID></div>
<div>
<br /><strong><u>4. Subscribe your Feed</u></strong></div>
<div>
Use you link to subscribe the feed from your favored RSS Reader. If you don't have one, try these.<br /></div>
<div>
<cite>http://www.<b>feedly</b>.com</cite></div>
<div>
<cite>https://play.google.com/store/apps/details?id=com.noinnion.android.greader.reader</cite></div>
<div>
<cite><br /></cite></div>
</div>
Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-26581864165991688312013-04-01T12:08:00.002+08:002013-04-01T12:28:56.029+08:00Setup MySQL & PHP in Ubuntu Setup MySQL & PHP in Ubuntu <br />
<br />
Please make sure if your Apache & PHP was properly installed<br />
<br />
Install the following packages.<br />
<pre class="brush:xml">
apt-get install mysql-server
apt-get install libapache2-mod-auth-mysql
apt-get install php5-mysql
</pre>
Restart Apache afterwards.<br />
<pre class="brush:xml">
<br />
/etc/init.d/apache2 restart<br />
</pre>
<br />
<br />
<br />
Edit the MySQL config file, and make change as below. This example assumed you take IP as below.have<br />
Apache/PHP/MySQL Server IP = <strong>192.168.11.57</strong><br />
Workstation IP = <strong>192.168.11.4</strong><br />
<br />
<pre class="brush:xml">
vi /etc/mysql/my.cnf
#bind-address = 127.0.0.1
bind-address = 192.168.11.57</pre>
<br />
<br />
<br />
<br />
Creat a Database & Grant privileges for user access. MySQL default password is <strong>blank</strong>.<br />
<br />
<pre class="brush:xml">$ mysql -u root -p<br />
Enter password:<br />
mysql> CREATE DATABASE mydb;<br />
<br />
mysql> use mydb;<br />
<br />
mysql> CREATE TABLE PHONES(<br />
pid int(11) primary key auto_increment,<br />
name varchar(100) not null,<br />
price decimal(10,2) not null,<br />
description text,<br />
created_at timestamp default now(),<br />
updated_at timestamp<br />
);<br />
<br />
mysql> use mysql<br />
<br />
mysql> GRANT ALL ON *.* to root@'192.168.11.4' IDENTIFIED BY 'your-root-password'; <br />
mysql> GRANT ALL ON *.* to root@'192.168.11.57' IDENTIFIED BY 'your-root-password'; <br />
<br />
mysql> FLUSH PRIVILEGES;<br /></pre>
<span style="font-family: Courier New;"></span><br />
<br />
<br />
<br />
Update MySQL user password<br />
<br />
<pre class="brush:xml">
# mysqladmin -u root -p'your-old-password' password 'your-old-password''
</pre>
Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-5584785281542085992013-03-30T17:52:00.002+08:002013-04-01T12:28:47.287+08:00a Really Simple Android ListView Example
http://windrealm.org/tutorials/android/android-listview.phpAnonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-46114227560410956012013-03-26T00:08:00.002+08:002013-04-01T12:28:56.030+08:00Check if Apache & PHP was properly installed on Ubuntu LinuxOnce your have installed Ubuntu server, depends on your setup option, Apache & PHP may not be installed. You can then issue the following command to install then. <br />
<br />
<pre class="brush:xml">sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart </pre>
<br />
Afterwards, issue vi a php file (phpinfo.php) in dir /var/www , with content below <br />
<br />
<pre class="brush:xml"><?php
print_r (phpinfo());
?></pre>
<br />
If a PHP verion page showup, it means you Apache & PHP setup is completed.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-40p5DEd5uC4/UVB2LPVQCJI/AAAAAAAAALQ/iYf6VGru1bw/s1600/phpinfo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-40p5DEd5uC4/UVB2LPVQCJI/AAAAAAAAALQ/iYf6VGru1bw/s320/phpinfo.jpg" ssa="true" width="228" /></a></div>
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-49938005692474182432012-10-26T11:02:00.001+08:002012-10-26T11:02:27.146+08:00Creating Android Icon <div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-unXW6l--dAo/UIn9IUKl61I/AAAAAAAAAKs/pHIZnV_xagQ/s1600/GreenfishIconEditorProPortable_128.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-unXW6l--dAo/UIn9IUKl61I/AAAAAAAAAKs/pHIZnV_xagQ/s1600/GreenfishIconEditorProPortable_128.png" /></a></div>
<br />
<br />
Finding a tools to create an icon for your Android apps? Check this out.<br />
<br />
<br />
Greenfish Icon Editor Pro Portable<br />
<br />
http://portableapps.com/apps/graphics_pictures/greenfish-icon-editor-pro-portableAnonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-41428996647348958642012-10-12T15:11:00.001+08:002012-10-12T15:11:43.443+08:00Android 4.1.2 factory image new available for download<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-SEtGpUq1A6A/UHfCcwL0_6I/AAAAAAAAAKY/FY9P3Za_MgA/s1600/gn412.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="http://2.bp.blogspot.com/-SEtGpUq1A6A/UHfCcwL0_6I/AAAAAAAAAKY/FY9P3Za_MgA/s320/gn412.jpg" width="320" /></a></div>
<br />
<br />
Android 4.1.2 stock ROMs for various Nexus device are now available for download.<br />
<br />
Supported device list is as below:<br />
<br />
- Nexus 7<br />
- Nexus Q<br />
- Galaxy Nexus <br />
- Nexus S<br />
<br />
<br />
https://developers.google.com/android/nexus/images<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-4659501918753215592012-08-16T09:52:00.000+08:002012-08-16T09:52:38.658+08:00Android version vs API LevelAs new version of API released, you can bring more feature to your own apps.<br />
However, those apps written by new API Level will not be assessable by old of Android version. Developer then get to make your own choice,<br />
<br />
more new feature ? or more potential user?<br />
<br />
<br />
<table border="1"><tbody>
<tr><th>Platform Version</th><th>API Level</th><th>VERSION_CODE</th><th>Notes</th></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-4.1.html">Android 4.1, 4.1.1</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/16/changes.html" title="Diff Report">16</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#JELLY_BEAN">JELLY_BEAN</a></code></td>
<td><a href="http://developer.android.com/about/versions/jelly-bean.html">Platform
Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-4.0.3.html">Android 4.0.3, 4.0.4</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/15/changes.html" title="Diff Report">15</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ICE_CREAM_SANDWICH_MR1">ICE_CREAM_SANDWICH_MR1</a></code></td>
<td rowspan="2"><a href="http://developer.android.com/about/versions/android-4.0-highlights.html">Platform
Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-4.0.html">Android 4.0, 4.0.1, 4.0.2</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/14/changes.html" title="Diff Report">14</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ICE_CREAM_SANDWICH">ICE_CREAM_SANDWICH</a></code></td>
</tr>
<tr><td><a href="http://developer.android.com/about/versions/android-3.2.html">Android 3.2</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/13/changes.html" title="Diff Report">13</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB_MR2">HONEYCOMB_MR2</a></code></td>
<td><br /></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-3.1.html">Android 3.1.x</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/12/changes.html" title="Diff Report">12</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB_MR1">HONEYCOMB_MR1</a></code></td>
<td><a href="http://developer.android.com/about/versions/android-3.1-highlights.html">Platform Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-3.0.html">Android 3.0.x</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/11/changes.html" title="Diff Report">11</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB">HONEYCOMB</a></code></td>
<td><a href="http://developer.android.com/about/versions/android-3.0-highlights.html">Platform Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-2.3.3.html">Android 2.3.4<br />Android 2.3.3</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/10/changes.html" title="Diff Report">10</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#GINGERBREAD_MR1">GINGERBREAD_MR1</a></code></td>
<td rowspan="2"><a href="http://developer.android.com/about/versions/android-2.3-highlights.html">Platform
Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-2.3.html">Android 2.3.2<br />Android 2.3.1<br />Android
2.3</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/9/changes.html" title="Diff Report">9</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#GINGERBREAD">GINGERBREAD</a></code></td>
</tr>
<tr><td><a href="http://developer.android.com/about/versions/android-2.2.html">Android 2.2.x</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/8/changes.html" title="Diff Report">8</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#FROYO">FROYO</a></code></td>
<td><a href="http://developer.android.com/about/versions/android-2.2-highlights.html">Platform Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-2.1.html">Android 2.1.x</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/7/changes.html" title="Diff Report">7</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR_MR1">ECLAIR_MR1</a></code></td>
<td rowspan="3"><a href="http://developer.android.com/about/versions/android-2.0-highlights.html">Platform
Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-2.0.1.html">Android 2.0.1</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/6/changes.html" title="Diff Report">6</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR_0_1">ECLAIR_0_1</a></code></td>
</tr>
<tr><td><a href="http://developer.android.com/about/versions/android-2.0.html">Android 2.0</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/5/changes.html" title="Diff Report">5</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR">ECLAIR</a></code></td>
</tr>
<tr><td><a href="http://developer.android.com/about/versions/android-1.6.html">Android 1.6</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/4/changes.html" title="Diff Report">4</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#DONUT">DONUT</a></code></td>
<td><a href="http://developer.android.com/about/versions/android-1.6-highlights.html">Platform Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-1.5.html">Android 1.5</a></td>
<td><a href="http://developer.android.com/sdk/api_diff/3/changes.html" title="Diff Report">3</a></td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#CUPCAKE">CUPCAKE</a></code></td>
<td><a href="http://developer.android.com/about/versions/android-1.5-highlights.html">Platform Highlights</a></td></tr>
<tr><td><a href="http://developer.android.com/about/versions/android-1.1.html">Android 1.1</a></td>
<td>2</td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#BASE_1_1">BASE_1_1</a></code></td><td><br /></td></tr>
<tr><td>Android 1.0</td>
<td>1</td>
<td><code><a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#BASE">BASE</a></code></td></tr>
</tbody></table>
<br />
As of Aug 2012 with "Health and Fitness" apps, majority (58%) Android version is still in 2.3.3. Latest version 4.0.3 just get ~18. % share.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-T8jwcwMQevE/UCxSQQkSbFI/AAAAAAAAAJ8/ykz3z86G9VI/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="94" src="http://1.bp.blogspot.com/-T8jwcwMQevE/UCxSQQkSbFI/AAAAAAAAAJ8/ykz3z86G9VI/s320/01.png" width="320" /></a></div>
<br />
<br />
So, you get the answer<br />
<br />
<br />
<br />
<br />
<br />
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#uses<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-14768994844903655292012-08-13T09:30:00.001+08:002012-08-13T09:30:54.389+08:00海豹雜記: StockWatcher -- Google Web Toolkit(GWT) 入門 (三)<a href="http://sealmemory.blogspot.com/2010/12/stockwatcher-google-web-toolkitgwt_09.html?spref=bl">海豹雜記: StockWatcher -- Google Web Toolkit(GWT) 入門 (三)</a>: 在 StockWatcher -- Google Web Toolkit(GWT) 入門 (二) 中已經將所有的使用者介面元件建立好了,接下來要建立元件的 event,讓這些原件可以有一些動作。 處理客戶端的 Event 加入 Event Handler 在 GWT...Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-19194415048111688212012-08-11T01:10:00.002+08:002012-08-11T01:17:50.052+08:00send SMS to Android Emulator<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Z_TQRcTKxAE/UCVCOJrREnI/AAAAAAAAAJo/9p0-QF0SZAU/s1600/000.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-Z_TQRcTKxAE/UCVCOJrREnI/AAAAAAAAAJo/9p0-QF0SZAU/s1600/000.png" /></a></div>
<br />
<br />
If you try to develop SMS related Android app, you may want to send testing SMS to your emulator through Emulator Console.<br />
<br />
With Emulator Console, you can simulate voice call and SMS activity on your Android Virtual Device (AVD). To make it works, please following the following steps<br />
<br />
<br />
1. Make sure your AVD was started.<br />
<br />
2. Start putty. (<a href="http://portableapps.com/apps/internet/putty_portable/" target="_blank">Get here if don't have.</a>)<br />
<br />
3. Connect your local host with TCP port 5554. Press "Save" and "Open" to start Emulator Console.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ehLEdZk28iQ/UCVBUjn0MAI/AAAAAAAAAJI/YQmRJXV7w6E/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="307" src="http://2.bp.blogspot.com/-ehLEdZk28iQ/UCVBUjn0MAI/AAAAAAAAAJI/YQmRJXV7w6E/s320/001.png" width="320" /></a></div>
<br />
<br />
4. if all things go fine, Emulator Console will display as follow.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-P99z1MvsvnM/UCVBcHMEP4I/AAAAAAAAAJQ/BKD_1L9nmew/s1600/002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="201" src="http://3.bp.blogspot.com/-P99z1MvsvnM/UCVBcHMEP4I/AAAAAAAAAJQ/BKD_1L9nmew/s320/002.png" width="320" /></a></div>
<br />
<br />
5. Type in "sms send <phone number> <message text>". <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-vw69s5PVzAI/UCVBiWsfZ-I/AAAAAAAAAJY/onEHKY5Y-yU/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="201" src="http://3.bp.blogspot.com/-vw69s5PVzAI/UCVBiWsfZ-I/AAAAAAAAAJY/onEHKY5Y-yU/s320/003.png" width="320" /></a></div>
<br />
<br />
<br />
6. SMS message will be delivered ti AVD.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-zvKpLedJKlw/UCVBv_SpezI/AAAAAAAAAJg/rcf25i7oyQY/s1600/004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="295" src="http://2.bp.blogspot.com/-zvKpLedJKlw/UCVBv_SpezI/AAAAAAAAAJg/rcf25i7oyQY/s320/004.png" width="320" /></a></div>
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-62365179084976966042012-08-07T09:28:00.002+08:002012-08-07T09:28:54.623+08:00Google Play : Android Developer Console beta problemGoogle had released a new beta version of Google play Android Developer console..<br />
However, I get a problem when in providing multiple language description on my apps.<br />
<br />
I defined 4 language description (English-US, English-EN, Trad Chinese & Simp. Chinese). It looks fine in new beta.<br />
But when I switch back to old version. the language tag just show Eng-en x 3 & 1 x Trad Chinese.<br />
<br />
I have reported the issue to Google, and see if they have any reply.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-PDzm1tqEtOo/UCBvLPr1cpI/AAAAAAAAAI0/zC6BWPdeKeU/s1600/Gogole+Play+Developer+Console+problem.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-PDzm1tqEtOo/UCBvLPr1cpI/AAAAAAAAAI0/zC6BWPdeKeU/s320/Gogole+Play+Developer+Console+problem.png" width="320" /></a></div>Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-81546728287071460682012-08-03T10:29:00.002+08:002012-08-03T10:29:48.718+08:00Outlook.com registration started<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-CIkVnr8koXo/UBsy7dybToI/AAAAAAAAAIk/veV2DKTYA0k/s1600/outlook.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="194" src="http://4.bp.blogspot.com/-CIkVnr8koXo/UBsy7dybToI/AAAAAAAAAIk/veV2DKTYA0k/s320/outlook.jpg" width="320" /></a></div>
<br />
Outoolk.com registration has been started. get your won name, before it was taken by the others! UI is much more clean, with limited Ads, then Hotmail, cool.<br />
<br />
If you have a Mobile Device including Windows /Mobile / iPhone / Android, you may also download it official apps too.<br />
<br />
Microsoft has NOT announced if existing Hotmail.com will get any changes, but the log-on it screen has gone into the Metro way, just like Outlook.com. I just worried how long will Microsoft keep it Totmail.com operation<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-58788612933676222102012-08-02T21:49:00.003+08:002012-08-02T21:50:16.835+08:00making table on Blogger / BlogSpotIf you have table prepared on Excel and wanted to paste it on Blogger, table layout will be destroyed. <br />
Its because Excel table incuded large amount of specific layout including actual pixel size, position, etc.<br />
<br />
To make the layout in order, switch to "HTML" immediately right after you you pasted the Excel table in "Compose", and clear up all unwanted tag<br />
<br />
Her it get a nice HTML basic example for you, from another Blogger.<br />
<br />
<a href="http://tips-for-new-bloggers.blogspot.hk/2007/08/tables-html-basics-and-tutorial.html">http://tips-for-new-bloggers.blogspot.hk/2007/08/tables-html-basics-and-tutorial.html</a>Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-23604901343091006122012-08-02T21:34:00.001+08:002012-08-02T21:50:54.075+08:00Error when implementing AdMob into existing Android app<div class="separator" style="clear: both; text-align: center;">
<a href="http://zhtw.admob.com/img/ad_mob_logo_header.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://zhtw.admob.com/img/ad_mob_logo_header.gif" /></a></div>
<br />
<br />
After a successful application of AdMob, next step to start your Ads business is integrate the AbMob into your apps. I am not going through the detail as, its really simple for person who can write your own apps.<br />
<br />
I just want to share some experience during the implementation, especially when your existing apps are developed based on Android 2.3 or prior version.<br />
<br />
if you following <a href="https://developers.google.com/mobile-ads-sdk/docs/" target="_blank">the guideline from Google AdMob</a>, you may get the following error<br />
<br />
<pre class="default prettyprint"><code><span class="tag"><activity</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.google.ads.AdActivity"</span><span class="pln">
</span><span class="atn">android:configChanges</span><span class="pun">=</span><span class="atv">"keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"</span><span class="tag">></activity></span><span class="pln">
</span></code></pre>
<br />
<br />
<pre class="default prettyprint"><code><span class="pln" style="color: red;">error</span><span class="pun" style="color: red;">:</span><span class="pln" style="color: red;"> </span><span class="typ" style="color: red;">Error</span><span class="pun" style="color: red;">:</span><span class="pln" style="color: red;"> </span><span class="typ" style="color: red;">String</span><span class="pln" style="color: red;"> types </span><span class="kwd" style="color: red;">not</span><span class="pln" style="color: red;"> allowed </span><span class="pun" style="color: red;">(</span><span class="pln" style="color: red;">at </span><span class="str" style="color: red;">'configChanges'</span><span class="pln" style="color: red;"> </span><span class="kwd" style="color: red;">with</span><span class="pln" style="color: red;"> value </span><span class="str" style="color: red;">'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize'</span><span class="pun" style="color: red;">).</span><span class="pln">
</span></code></pre>
<br />
<br />
When your are using AdMob V6+, you apps SDK must be Android 3.2 (target SDK 13) or above. For new I recommend you to use Android SDK 4.0.3 (SDK 15), as Android 3.2 was for Tablet.<br />
<br />
1. In AndroidManifest.xml, make the changed as below. remeber to setup your minSdkVersion, or your existing coding may not be run.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-DfXc-NxRCZA/UBp5dTgrBCI/AAAAAAAAAIE/6fAWsIBBMWo/s1600/ScreenHunter_01+Aug.+02+20.38.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="http://1.bp.blogspot.com/-DfXc-NxRCZA/UBp5dTgrBCI/AAAAAAAAAIE/6fAWsIBBMWo/s320/ScreenHunter_01+Aug.+02+20.38.jpg" width="320" /></a></div>
<br />
<br />
<div style="color: red;">
<span style="font-family: "Courier New",Courier,monospace;"> <uses-sdk </span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> android:minSdkVersion="10" </span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> android:targetSdkVersion="15"/></span></div>
<br />
<div style="font-family: inherit;">
<span style="font-size: small;"> 2. Make the following changes in "project.properties" file </span>
</div>
<pre class="default prettyprint"><code><span class="com"> </span></code></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-V_YJQgDVuzs/UBqAIHT19hI/AAAAAAAAAIU/C_lcvUsFLp8/s1600/ScreenHunter_02+Aug.+02+20.39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="287" src="http://4.bp.blogspot.com/-V_YJQgDVuzs/UBqAIHT19hI/AAAAAAAAAIU/C_lcvUsFLp8/s320/ScreenHunter_02+Aug.+02+20.39.jpg" width="320" /></a></div>
<pre class="default prettyprint"><code><span class="com"> </span></code></pre>
<pre class="default prettyprint"><code><span class="com"> </span></code></pre>
<pre class="default prettyprint"><code><span style="font-family: "Courier New",Courier,monospace; font-size: small;"><span class="com"># Project target.</span><span class="pln">
target</span><span class="pun">=</span><span class="pln">android</span><span class="pun">-</span><span class="lit">15</span></span><span class="pln">
</span></code></pre>
<br />
<br />
Please note after the implementation. you lay out will have become Android 4.0 stylus. UI appearance may be changed.<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-9184282035114724012012-08-02T14:50:00.004+08:002012-08-03T22:36:36.923+08:00Ads on your apps, AdSense vs AdMob vs AdWord<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://encrypted-tbn1.google.com/images?q=tbn:ANd9GcTJU7bar0AkHG5g7vQKvzKDsUzFMeGHbqYRB4aLjarvw4lqRlgywQ" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://encrypted-tbn1.google.com/images?q=tbn:ANd9GcTJU7bar0AkHG5g7vQKvzKDsUzFMeGHbqYRB4aLjarvw4lqRlgywQ" /></a></div>
<br />
<br />
Google has several brands of advertising product, with different type of target audience.<br />
<br />
<br />
<u><b>AdWord</b></u><br />
<br />
It's target for bsuiness who want to be place advertisement and be exposure on the Internet.<br />
They pay for Gogole and let their Ads be show up on the relative site. As a developer, its not my job, but my "Boss" job.<br />
<br />
<br />
<u><b>AdSense</b></u><br />
<br />
If you own a web site / forum / blog and want to get some money, AdSense would be your choice. With large advertiser based, it provided localized advertisement network, in which the Ad it show on your site will could match the taste of your daily visitors.<br />
<br />
However, a unapproved AdSense, I can tell you that its not easy to get a register AdSense in these years. First your content provided should be "clear". Any immortal content on your site, or misbehavior that affected your Ads click rate will probably lead your account disabled. <i><u>AdSense application is not easy to get approved</u></i>.<br />
<br />
With the content of this Blog provided today (~ 20 post), Google AdSense defined it as "insufficient content" and will simply reject my application. As a developer, its also not the things for me. It takes large amount of time and effort to maintenance a webpage / Blog / forum with quality content, but what I am focusing is my Mobile Apps.<br />
<br />
<br />
<u><b>AdMob</b></u><br />
<br />
If you have developed a android apps and published to Google Play, like me, and wanted share your products with Ads, it would be much easier to apply (vs AdSense). If you have a published apps on Google Play, can get your AdMob A/C on the fly once your application submitted. Google also provided a tidy library JAR and allow you to implement your the Ads to your apps easily.<br />
<br />
<br />
<br />
<b><u>Conclusion</u></b><br />
<br />
IF you have a apps on Google play and want to get some cash, <a href="http://www.admob.com/" target="_blank">Apply AdMob now</a>, and start your Ads business.<br />
<br />
<br />
<table border="10" cellpadding="5" cellspacing="5">
<tbody>
<tr>
<td><b>Account</b></td>
<td><b>who should
apply?</b></td>
<td><b>Cash flow</b></td>
<td><b>What you need?</b></td>
</tr>
<tr>
<td>AdSense</td>
<td>Web site owner /
Blogger</td>
<td>get paid</td>
<td>An operational website / Blog </td>
</tr>
<tr>
<td>AdMob</td>
<td>Mobile App Developer</td>
<td>get paid</td>
<td>An apps published on Google
Play (or Apps Store)</td>
</tr>
<tr>
<td>AdWord</td>
<td>Marketing people</td>
<td>Pay</td>
<td>Cash</td>
</tr>
</tbody></table>
<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-51143668481026681682012-07-31T15:54:00.005+08:002012-08-03T22:34:53.416+08:00"unable to resolve target" and "Unable to get system library for the project"Have you even tried to import an Android Project into Eclipse, but get error like "unable to resolve target" and "Unable to get system library for the project" ? If so, this post may help.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-rebsMwYyIQY/UBeN9jaPlPI/AAAAAAAAAHs/leiKcmwEttI/s1600/err01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="http://1.bp.blogspot.com/-rebsMwYyIQY/UBeN9jaPlPI/AAAAAAAAAHs/leiKcmwEttI/s320/err01.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-gcasXSH5Sco/UBeOAEWr-0I/AAAAAAAAAH0/rbWWk8PuMlY/s1600/err02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-gcasXSH5Sco/UBeOAEWr-0I/AAAAAAAAAH0/rbWWk8PuMlY/s320/err02.png" width="320" /></a></div>
<br />
<br />
In sometimes, the error was caused by unavailable of certain Android SDK version. The project may be build based on a version of Android SDK, that your Eclipse had not installed.<br />
<br />
To solve the issue, just following the steps below.<br />
<br />
1. In Eclipse, right click your project > Properties.<br />
2. Click Android, select a build target and "ok"<br />
3, When you go back to Eclipse, clokc, Project > Clean > Clean all projects<br />
<br />
Then back to your .java and all error should be removed.<br />
<br />
p.s. The nice example was came from <a href="http://www.e-nature.ch/tech/?tag=view-slider" target="_blank">How to convert an Activity class to use with FragmentPagerAdapter</a><br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-65393211682219767932012-07-31T00:17:00.002+08:002012-07-31T00:29:07.377+08:00Report for Apple apps naming<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-2zFYp0u_nt4/UBazir9j9OI/AAAAAAAAAHc/9gKD3OLEH4k/s1600/bb.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://1.bp.blogspot.com/-2zFYp0u_nt4/UBazir9j9OI/AAAAAAAAAHc/9gKD3OLEH4k/s320/bb.jpg" width="320" /></a></div>
<br />
<br />
Its always be a hard decision in naming my own apps. For me, I get to consider a few issues.<br />
<br />
1. Descriptive - User get to know what you apps is through the name<br />
<br />
2. Unique - Make your apps different from other<br />
<br />
3. Simple - Easy to remember, so that it can be told to others!<br />
<br />
For sure that I am not very well in apps naming.<br />
<br />
<br />
How would you name your apps? See if you can be inspired by those Apple IOS developer.<br />
<br />
Most commonly used wording in IOS apps name:<br />
1. HD – 27777<br />
2. Lite – 21690<br />
3. Free – 18511<br />
4. iPad – 11313<br />
5. Pro – 9024<br />
6. Guide – 8361<br />
7. Mobile – 7695<br />
8. App – 6142<br />
9. iPhone – 5441<br />
10. Game – 5377<br />
11. Travel – 4851<br />
12. Radio – 4633<br />
13. World – 4504<br />
14. Map – 4351<br />
15. Dictionary – 4220<br />
16. Edition – 4198<br />
17. Calculator – 4164<br />
18. Kids – 3852<br />
19. English – 3680<br />
20. News – 3611<br />
21. Book – 3254<br />
22. Magazine – 3009<br />
23. Photo – 2957<br />
24. Puzzle – 2835<br />
25. Music – 2764<br />
<br />
<br />
<br />
<a href="http://blog.appsfire.com/which-words-do-app-developers-most-commonly-use-in-their-app-titles/" target="_blank">Which words do App developers most commonly use in their App titles?</a><br />
<a href="http://www.slideshare.net/appsfire/app-score-report-best-ios-apps-june-2012" target="_blank">Apps Score Report June 2012 </a><br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-80531012376457375422012-07-30T00:41:00.004+08:002012-08-02T21:51:31.422+08:00"R cannot be resolved" errorFor "R cannot be resolved" error, in most cases, the problem may relied on the Java itself, but /res/values/strings.xml. Make sure the syntax of XML is correct.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-1Fmwb6kEXS8/UBVnsuVyJyI/AAAAAAAAAGI/1dJQORjVOOg/s1600/r_not_resilved.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-1Fmwb6kEXS8/UBVnsuVyJyI/AAAAAAAAAGI/1dJQORjVOOg/s320/r_not_resilved.png" width="320" /></a></div>
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-34660279178849709802012-07-29T02:02:00.000+08:002012-07-29T21:24:26.232+08:00Baby milkfeed counter<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-gMia2r2CgvA/UBQpCXi91yI/AAAAAAAAAFA/1bDjBBV5FDY/s1600/icon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-gMia2r2CgvA/UBQpCXi91yI/AAAAAAAAAFA/1bDjBBV5FDY/s320/icon.png" width="320" /></a></div>
<br />
It help parent to record the volume of milk their baby taken. It also tell you your baby age and birthday! And the most amazing thing is ... its my first Android apps!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-BWWvodTYL3A/UBQpHmoH0eI/AAAAAAAAAFI/sPixm7ixQXw/s1600/milkfeed_en.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-BWWvodTYL3A/UBQpHmoH0eI/AAAAAAAAAFI/sPixm7ixQXw/s320/milkfeed_en.png" width="192" /></a></div>
<br />
<br />
Localized in English, Chinese, Simp. Chinese, Trad. Chinese<br />
<br />
You may download the apps <a href="https://play.google.com/store/apps/details?id=com.thirddev.milkfeed" target="_blank">Baby milkfeed counter from Google Play </a>.Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-63535539700835581482012-07-29T01:17:00.001+08:002012-07-29T01:47:38.920+08:00Upgrade and Versioning of your apps<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-xBp4NFdsWO4/UBQegiBfsOI/AAAAAAAAAEo/LrryFlDK55c/s1600/upgrade_icon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="146" src="http://1.bp.blogspot.com/-xBp4NFdsWO4/UBQegiBfsOI/AAAAAAAAAEo/LrryFlDK55c/s320/upgrade_icon.png" width="320" /></a></div>
<br />
<br />
If you have developed feature or bug fix your Android apps, you have to change the version of your app, before you can upload it to Google Play.<br />
<br />
versionCode - Integer only. That's the version of your application code. You must change (normally +1) its or Google Play will not allow you upload the APK.<br />
<br />
versionName - String. Version name that all users can see. So that they can identify which version they are using. (normally in format like 1.0.2)<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-CQu3YGwIF7Q/UBQb84hTAfI/AAAAAAAAAEY/xtlPAMMlfvg/s1600/app_upgrade.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="183" src="http://2.bp.blogspot.com/-CQu3YGwIF7Q/UBQb84hTAfI/AAAAAAAAAEY/xtlPAMMlfvg/s320/app_upgrade.png" width="320" /></a></div>
<br />
<br />
<br />
See more in <a href="http://developer.android.com/tools/publishing/versioning.html" target="_blank">Android Developer - Versioning Your Applications</a>Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-90523723740593623032012-07-29T00:45:00.000+08:002012-07-29T01:52:37.762+08:00Android 4.1 SDK (ADT 20.0.2) releasedGoogle release its latest Android Development Tool 20 in July 2012. It includes tones of bug fix. What are you waiting for? Launch Eclipse and update your ADT ASAP?<br />
<br />
<br />
<a href="http://developer.android.com/tools/sdk/eclipse-adt.html" target="_blank">Android Developer - ADT plug-in</a>Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-24521289962864340732012-07-29T00:21:00.000+08:002012-07-29T01:54:17.139+08:00Syntax Highlight for Blogger<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-5qvrO6smeBg/UBQTRZUgWRI/AAAAAAAAAEI/vnWhwh4Pxa4/s1600/Basic_english_syntax_tree.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-5qvrO6smeBg/UBQTRZUgWRI/AAAAAAAAAEI/vnWhwh4Pxa4/s1600/Basic_english_syntax_tree.png" /></a></div>
<br />
<br />
Content of this blog contain source code of programming language, like XML & Java. For ease of reading, they are well formatted by SyntaxHighlighter .<br />
<br />
The following described how to implement SyntaxHighlighter in Blogger.com<br />
<br />
1. Login Blogger > Template > Edit HTML > Proceed<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-mx8RxQZI748/UBQMOevw3aI/AAAAAAAAADg/CAdokaUHgPs/s1600/syntax_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="165" src="http://4.bp.blogspot.com/-mx8RxQZI748/UBQMOevw3aI/AAAAAAAAADg/CAdokaUHgPs/s320/syntax_01.png" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
2. Copy & Paste the following code, just before <span style="font-family: "Courier New",Courier,monospace;"></Head></span>. Then <span style="font-family: "Courier New",Courier,monospace;">Save template</span>. After that, Blogger template setup is completed<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-D76pUi49FQY/UBQNO0ZV7eI/AAAAAAAAADo/g_3PZCB1D8I/s1600/syntax_02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="218" src="http://1.bp.blogspot.com/-D76pUi49FQY/UBQNO0ZV7eI/AAAAAAAAADo/g_3PZCB1D8I/s320/syntax_02.png" width="320" /></a></div>
<br />
<br />
<br />
<pre class="brush:xml"><link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css"></link>
<link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css"></link>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript">
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'/>
<script language='javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>
</pre>
<br />
2. To add formatted code in to your Blogger, use wrap the content with the following tag.
<br />
<br />
<pre class="brush:xml"><pre class="brush:xml">
</pre>
</pre>
<br />
<br />
You also get to edit the content by HTML as below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-mbhvux4FVgA/UBQP74er9BI/AAAAAAAAAD4/FeeRYgRC-ZM/s1600/syntax_03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="http://4.bp.blogspot.com/-mbhvux4FVgA/UBQP74er9BI/AAAAAAAAAD4/FeeRYgRC-ZM/s320/syntax_03.png" width="320" /></a></div>
<br />
<br />
The above example is for XML content. For other like Java, PHP, etc, see the table below<br />
<br />
Here's a list of supported languages and their aliases: <br />
<table class="wikitable"><tbody>
<tr><td style="border: 1px solid #ccc; padding: 5px;"><b>Language</b> </td><td style="border: 1px solid #ccc; padding: 5px;"><b>Aliases</b> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">C++ </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>cpp</tt>, <tt>c</tt>, <tt>c++</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">C# </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>c#</tt>, <tt>c-sharp</tt>, <tt>csharp</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">CSS </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>css</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">Delphi </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>delphi</tt>, <tt>pascal</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">Java </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>java</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">Java Script </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>js</tt>, <tt>jscript</tt>, <tt>javascript</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">PHP </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>php</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">Python </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>py</tt>, <tt>python</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">Ruby </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>rb</tt>, <tt>ruby</tt>, <tt>rails</tt>, <tt>ror</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">Sql </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>sql</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">VB </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>vb</tt>, <tt>vb.net</tt> </td></tr>
<tr><td style="border: 1px solid #ccc; padding: 5px;">XML/HTML </td><td style="border: 1px solid #ccc; padding: 5px;"><tt>xml</tt>, <tt>html</tt>, <tt>xhtml</tt>, <tt>xslt</tt></td></tr>
</tbody></table>
<br />
Please also check with SyntaxHighlighter website for other info.<br />
<br />
<a href="http://code.google.com/p/syntaxhighlighter" target="_blank">SyntaxHighlighter in Google Code</a><br />
<a href="http://alexgorbatchev.com/SyntaxHighlighter" target="_blank">SyntaxHighlighter web site</a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-58132751488901883342012-07-28T20:21:00.001+08:002012-07-29T01:47:38.920+08:00Hiding Option Menu<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-sUQPWNAdvY0/UBPc_mEKaEI/AAAAAAAAADQ/mCkxvgjwqPw/s1600/hiding.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-sUQPWNAdvY0/UBPc_mEKaEI/AAAAAAAAADQ/mCkxvgjwqPw/s1600/hiding.png" /></a></div>
<br />
<br />
In some situation, you developed an app with optional menu but wants temporary disable it for reason. You may use <span style="font-family: "Courier New",Courier,monospace;">.setVisible(false)</span>.<br />
<br />
Before move on to an example, I expect you are familiar with Android Option Menu, if not, <a href="http://developer.android.com/guide/topics/ui/menus.html" target="_blank">please read this this first</a>.<br />
<br />
I have prepared an option menu defined below<br />
<br />
<pre class="brush:xml">
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item <="" android:id="@+id/OM_importSD">
android:icon="@drawable/ic_import"
android:title="@string/importSD" />
<item <="" android:id="@+id/OM_exportSD">
android:icon="@drawable/ic_export"
android:title="@string/exportSD" />
<item <="" android:id="@+id/OM_exportDropbox">
android:icon="@drawable/ic_exportdropbox"
android:title="@string/exportDropbox" />
<item <="" android:id="@+id/OM_unlinkDropbox">
android:icon="@drawable/ic_unlinkdropbox"
android:title="@string/unlinkDropbox" />
<item <="" android:id="@+id/OM_babyBirthday">
android:icon="@drawable/ic_babybirthday"
android:title="@string/babyBirthday" />
<item <="" android:id="@+id/OM_info">
android:icon="@drawable/ic_info"
android:title="@string/info" />
</item></item></item></item></item></item></menu> </pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Tw7CJKZKHjc/UBPY1WxbQhI/AAAAAAAAAC4/CBEwPq7Ir5k/s1600/menu_full.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://1.bp.blogspot.com/-Tw7CJKZKHjc/UBPY1WxbQhI/AAAAAAAAAC4/CBEwPq7Ir5k/s320/menu_full.png" width="192" /></a></div>
<pre class="brush:xml"> </pre>
<br />
Then, when the main java, add the following class and set your desired option menu to disable<br />
<br />
<br />
<pre class="brush:java">
boolean isLiteVersion = true;
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
if (isLiteVersion) {
menu.findItem(R.id.OM_exportSD).setVisible(false);
menu.findItem(R.id.OM_importSD).setVisible(false);
menu.findItem(R.id.OM_exportDropbox).setVisible(false);
menu.findItem(R.id.OM_unlinkDropbox).setVisible(false);
}
return true;
}
</pre>
Some of the option menu will then be be hidden.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-dfJtND_XFwo/UBPZOaizb_I/AAAAAAAAADA/_AEoOFAl-Jk/s1600/milkfeed_en.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-dfJtND_XFwo/UBPZOaizb_I/AAAAAAAAADA/_AEoOFAl-Jk/s320/milkfeed_en.png" width="192" /></a></div>
<br />
<br />
<br />
<a href="http://developer.android.com/guide/topics/ui/menus.html" target="_blank">Google Android Developer : Menu</a><br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com1tag:blogger.com,1999:blog-7681286159608179475.post-678326001666509822012-07-28T19:28:00.000+08:002012-07-29T01:53:48.964+08:00Galaxy S3 LTE , an Android /w 2G RAMThe Samsung android smart phone Galaxy S3 was announced for sometimes. However, in some country, like Koren, the ram size is doubled and up to 2GB. The device was import to by a 3rd party phone store, and its maintenance was not covered by Samsung HK. It retail and price is nearly the same as its 1GB ram version in Hong Kong about HK$5,280.<br />
<br />
During testing, the 2GB ram version S3 was found with 1.1GB free ram, interested?<br />
<br />
You may read the review as below.<br />
<br />
<a href="http://www.eprice.com.hk/mobile/talk/4523/47714/" target="_blank">四核 2GB RAM:韓版 Galaxy S3 水貨實測</a><br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com0tag:blogger.com,1999:blog-7681286159608179475.post-64585856304964231132012-07-28T18:30:00.000+08:002012-07-29T01:47:38.921+08:00Developing multi-language Android app<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-3UyoMO6lJGE/UBPEnWmw2YI/AAAAAAAAACo/_P8SzK9v-Yk/s1600/multilang.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="131" src="http://1.bp.blogspot.com/-3UyoMO6lJGE/UBPEnWmw2YI/AAAAAAAAACo/_P8SzK9v-Yk/s320/multilang.png" width="320" /></a></div>
<br />
<br />
Developing your apps with User Interface in Android is easy, but your get to follow the guidelines.<br />
<ul>
<li>Don't hard code text. Use Resource (strings.xml).</li>
<li>Avoid integrate text into picture (icon, banner, etc)</li>
<li>Use short wording</li>
</ul>
Let see some an example.<br />
The default language of the apps "Baby milkfeed counter" is English. That mean whatever you device language setting is, the apps will display UI in the English.<br />
<br />
Let's focus on the field "Fed Today".<br />
<br />
.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-frKsQPq_y1M/UBOvj5lLUUI/AAAAAAAAACA/BWcd6wUMeIA/s1600/milkfeed_en.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-frKsQPq_y1M/UBOvj5lLUUI/AAAAAAAAACA/BWcd6wUMeIA/s320/milkfeed_en.png" width="192" /></a></div>
<br />
The below is a extract of the /res/layout/main.xml. <br />
<br />
<br />
<br />
<pre class="brush:xml"> <textview <="">
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fedToday" />
</textview></pre>
<br />
<br />
The above text "@string/fedToday" was a tag stored in /res/values/strings.xml. Text field stored in this file are default language in this app (i.e. English). Let see the extract content of this string.xml.<br />
<br />
<br />
<br />
<pre class="brush:xml">
<resources>
...
...
<string name="lastFeedTime">Last feed time</string>
<string name="lastFeedVol">Last volume</string>
<string name="sinceLastFeed">Since last feed</string>
<string name="fedToday">Fed today</string>
<string name="fedYestersday">Fed Yesterday</string>
...
...
</resources>
</pre>
<br />
Rather than hard code the text "Fed Today" in /res/layout/main.xml , I store it as string in /res/values/strings.xml. In fact, you should store all the text that will display in UI in the strings.xml. To implement multilingual UI, I don't need to change other file, but just add another file, /res/value-<locale>/strings.xml.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-s7rqlU_uwpk/UBPAvrVQv1I/AAAAAAAAACQ/pvG3j7xWQJY/s1600/002_en.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="235" src="http://2.bp.blogspot.com/-s7rqlU_uwpk/UBPAvrVQv1I/AAAAAAAAACQ/pvG3j7xWQJY/s320/002_en.png" width="320" /></a></div>
<br />
<br />
For example, to implement the app's UI in Traditional Chinese, I just need to prepare another strings.xml, as in /res/values-zh-rTW/strings.xml.<br />
<br />
<br />
<pre class="brush:xml">
<resources>
...
...
<string name="lastFeedTime">上次餵哺時間</string>
<string name="lastFeedVol">上次餵哺量</string>
<string name="sinceLastFeed">離上次餵哺</string>
<string name="fedToday">今日已餵</string>
<string name="fedYestersday">昨日已餵</string>
...
...
</resources>
</pre>
<br />
The process is completed. As you can see, the UI development did not involved any Java code, or even any file, just string.xml. To switch between go to the Android setting change the Language. launcher icon and UI textwill changed based on the device setting.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-cj7nK31y4iE/UBPA4fN8QQI/AAAAAAAAACY/1-qDUzyY39U/s1600/001_tw.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="267" src="http://3.bp.blogspot.com/-cj7nK31y4iE/UBPA4fN8QQI/AAAAAAAAACY/1-qDUzyY39U/s320/001_tw.png" width="320" /></a></div>
<br />
<br />
For every setting language, you get to prepare a separate /res/value-<locale>/strings.xml. if the device can find the its own language's string.xml, it uses the default one. Language and the strings.xml path mapping is as below.<br />
<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 556px;"><colgroup><col style="mso-width-alt: 7296; mso-width-source: userset; width: 171pt;" width="228"></col>
<col style="mso-width-alt: 10496; mso-width-source: userset; width: 246pt;" width="328"></col>
</colgroup><tbody>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="height: 16.5pt; width: 171pt;" width="228">Default</td>
<td class="xl24" style="border-left: none; width: 246pt;" width="328">/res/value/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">CANADA </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-en-rCA/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">CANADA-FRENCH </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-fr-rCA/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">CHINA </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-zh-rCN/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">CHINESE </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-zh/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">ENGLISH </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-en/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">FRANCE </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-fr-rFR/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">FRENCH </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-fr/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">GERMAN </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-de/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">GERMANY </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-de-rDE/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">ITALIAN </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-it/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">ITALY </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-it-rIT/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">JAPAN </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-ja-rJP/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">JAPANESE </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-ja/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">KOREA </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-ko-rKR/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">KOREAN </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-ko/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">PRC </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-zh-rCN/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">SIMPLIFIED-CHINESE </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-zh-rCN/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">TAIWAN </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-zh-rTW/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">TRADITIONAL-CHINESE </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-zh-rTW/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">UK </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-en-rGB/strings.xml</td>
</tr>
<tr height="22" style="height: 16.5pt;">
<td class="xl24" height="22" style="border-top: none; height: 16.5pt;">US </td>
<td class="xl24" style="border-left: none; border-top: none;">/res/value-en-rUS/strings.xml</td>
</tr>
</tbody></table>
<br />
<br />
<br />
For more locale info for Android Development / SDK, check with the following <br />
<br />
<a href="http://developer.android.com/training/basics/supporting-devices/languages.html" target="_blank">Supporting Different Languages</a><br />
<br />
<a href="http://developer.android.com/guide/topics/resources/localization.html" target="_blank">Localization</a><br />
<br />
<a href="http://developer.android.com/reference/java/util/Locale.html" target="_blank">Locale</a><br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/13532573640442769279noreply@blogger.com3