﻿define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>/dev/head &#187; android</title>
	<atom:link href="http://devhead.ru/cat/android/feed" rel="self" type="application/rss+xml" />
	<link>http://devhead.ru</link>
	<description>Статьи и видео уроки</description>
	<lastBuildDate>Mon, 30 Jan 2017 11:12:34 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.37</generator>
	<item>
		<title>Call Google Goggles from android&#8217;s app</title>
		<link>http://devhead.ru/read/call-google-goggles-from-androids-app</link>
		<comments>http://devhead.ru/read/call-google-goggles-from-androids-app#comments</comments>
		<pubDate>Thu, 21 Aug 2014 19:45:30 +0000</pubDate>
		<dc:creator><![CDATA[Аноним]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[goggles]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/call-google-goggles-from-androids-app</guid>
		<description><![CDATA[Button but1 = (Button) findViewById(R.id.button); but1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // it was the 1st button Intent LaunchIntent = null; try{ LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.google.android.apps.unveil"); startActivity(LaunchIntent); } catch (NullPointerException e){ Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("market://details?id=com.google.android.apps.unveil")); startActivity(intent); } } });]]></description>
				<content:encoded><![CDATA[<pre class="brush: java">
        Button but1 = (Button) findViewById(R.id.button);
        but1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // it was the 1st button
                Intent LaunchIntent = null;
                try{
                LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.google.android.apps.unveil");
                    startActivity(LaunchIntent);
                }
                catch (NullPointerException e){
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse("market://details?id=com.google.android.apps.unveil"));
                    startActivity(intent);
                }

            }
        });
 
</pre>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/call-google-goggles-from-androids-app/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>ListView with image from file</title>
		<link>http://devhead.ru/read/listview-with-text-and-image</link>
		<comments>http://devhead.ru/read/listview-with-text-and-image#comments</comments>
		<pubDate>Thu, 22 May 2014 09:38:52 +0000</pubDate>
		<dc:creator><![CDATA[Аноним]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[listview]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/listview-with-text-and-image</guid>
		<description><![CDATA[MainActivity.java package ru.devhead.flashcardsen_ru.app; import android.database.Cursor; import android.database.MatrixCursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.support.v4.app.FragmentActivity; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.CursorLoader; import android.support.v4.content.Loader; import android.support.v4.widget.SimpleCursorAdapter; import android.view.Menu; import android.widget.ImageView; import android.widget.ListView; import java.util.ArrayList; public class MainActivity extends FragmentActivity implements LoaderCallbacks&#60;Cursor&#62; { String[] text = { "Afghanistan", "Algeria" }; Bitmap [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://devhead.ru/read/listview-with-text-and-image/attachment/customlistviewss" rel="attachment wp-att-2042"><img class="size-medium wp-image-2042 alignnone" alt="customlistviewss" src="http://devhead.ru/wp-content/uploads/2014/05/customlistviewss-300x278.png" width="300" height="278" /></a></p>
<p><span id="more-2039"></span></p>
<p>MainActivity.java</p>
<pre class="brush: java">package ru.devhead.flashcardsen_ru.app;

import android.database.Cursor;
import android.database.MatrixCursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends FragmentActivity implements LoaderCallbacks&lt;Cursor&gt; {

    String[] text = { "Afghanistan", "Algeria" };

    Bitmap bmp = BitmapFactory.decodeFile("/mnt/sdcard/cards/cat.png");
    Bitmap bmp1 = BitmapFactory.decodeFile("/mnt/sdcard/cards/dog.png");
    Bitmap[] image={bmp,bmp1};

    // int [] image = {  R.drawable.ic_launcher,R.drawable.ic_launcher};

    ListItemDetails item_details;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList&lt;ListItemDetails&gt; result = GetSearchResults();
        ListView lv = (ListView)findViewById(R.id.listView);
        lv.setAdapter(new CustomListAdapter(result,getApplicationContext()));

    }
    private ArrayList&lt;ListItemDetails&gt; GetSearchResults() {
        // TODO Auto-generated method stub
        ArrayList&lt;ListItemDetails&gt; results = new ArrayList&lt;ListItemDetails&gt;();
        ImageView imageview = (ImageView) findViewById(R.id.imageView1);

        for(int i=0;i&lt;text.length;i++)
        {
            item_details= new ListItemDetails();
            item_details.setName(text[i]);
            item_details.setImage(image[i]);
            results.add(item_details);
        }

        return results;
    }

    @Override
    public Loader&lt;Cursor&gt; onCreateLoader(int id, Bundle args) {
        return null;
    }

    @Override
    public void onLoadFinished(Loader&lt;Cursor&gt; loader, Cursor data) {

    }

    @Override
    public void onLoaderReset(Loader&lt;Cursor&gt; loader) {

    }
}</pre>
<p>&nbsp;</p>
<p>CustomListAdapter.java</p>
<pre class="brush: java">package ru.devhead.flashcardsen_ru.app;

        import java.util.ArrayList;
        import android.app.Activity;
        import android.content.Context;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.BaseAdapter;
        import android.widget.ImageView;
        import android.widget.TextView;

public class CustomListAdapter extends BaseAdapter {

    private static ArrayList&lt;ListItemDetails&gt; itemDetailsrrayList;

    LayoutInflater layoutInflator;
    String[] countryName;
    int[] countryFlag;
    Context context;

    public CustomListAdapter(ArrayList&lt;ListItemDetails&gt; result, Context c) {
        // TODO Auto-generated constructor stub
        itemDetailsrrayList = result;
        context = c;
    }

    public int getCount() {
        // TODO Auto-generated method stub
        return itemDetailsrrayList.size();
    }

    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return itemDetailsrrayList.get(arg0);
    }

    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        layoutInflator =
                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row = layoutInflator.inflate(R.layout.item_list, parent, false);

        TextView textview = (TextView) row.findViewById(R.id.textView1);
        ImageView imageview = (ImageView) row.findViewById(R.id.imageView1);

        textview.setText(itemDetailsrrayList.get(position).getName());
        imageview.setImageBitmap(itemDetailsrrayList.get(position).getImage());

        return (row);
    }
}</pre>
<p>ListItemDetails.java</p>
<pre class="brush: java">package ru.devhead.flashcardsen_ru.app;

import android.graphics.Bitmap;

public class ListItemDetails {

    private String name;
    private Bitmap image;

    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public Bitmap getImage()
    {
        return image;
    }
    public void setImage(Bitmap images)
    {
        this.image = images;
    }
}</pre>
<p>layout/activity_main.xml</p>
<pre class="brush: xhtml">&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="ru.devhead.flashcardsen_ru.app.MainActivity"&gt;

    &lt;ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/listView"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" /&gt;

&lt;/RelativeLayout&gt;</pre>
<p>layout/item_list.xml</p>
<pre class="brush: xhtml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" &gt;

    &lt;LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="2dip"&gt;

        &lt;ImageView
            android:id="@+id/imageView1"
            android:layout_width="50dip"
            android:layout_height="50dip"
            android:src="@drawable/ic_launcher" /&gt;

        &lt;TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dip"
            android:layout_marginTop="8dip"
            android:text="Medium Text"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#000" /&gt;

    &lt;/LinearLayout&gt;

&lt;/LinearLayout&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/listview-with-text-and-image/feed</wfw:commentRss>
		<slash:comments>160</slash:comments>
		</item>
		<item>
		<title>Как получить root права на планшете Android 4(через USB). И подключить 3G модем Huawei к Acer iconia tab A200</title>
		<link>http://devhead.ru/read/kak-poluchit-root-prava-na-planshete-android-4</link>
		<comments>http://devhead.ru/read/kak-poluchit-root-prava-na-planshete-android-4#comments</comments>
		<pubDate>Mon, 29 Apr 2013 07:57:35 +0000</pubDate>
		<dc:creator><![CDATA[andreykyz]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Huawei]]></category>
		<category><![CDATA[root]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=1879</guid>
		<description><![CDATA[Задался я тут недавно идеей, подключить мой 3G модем Huawei E1550 к планшетном компьютеру на Android 4. Нашел, что для работы pppd нужны root права. И тут пошел поиск. Скачав несколько "one click" скриптов я выяснил что ни один из них не заработал. Все они выдавали, что-то вроди этого: Sending mempodroid to tablet failed to [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;">Задался я тут недавно идеей, подключить мой 3G модем Huawei E1550 к планшетном компьютеру на Android 4. Нашел, что для работы pppd нужны root права. И тут пошел поиск. Скачав несколько "one click" скриптов я выяснил что ни один из них не заработал. Все они выдавали, что-то вроди этого:</p>
<blockquote><p>Sending mempodroid to tablet<br />
failed to copy 'mempodroid' to '/data/local/mempodroid': Permission denied<br />
setting permissions on mempodroid file<br />
Unable to chmod /data/local/mempodroid: No such file or directory<br />
exucuting exploit for root access!<br />
/system/bin/sh: /data/local/mempodroid: not found<br />
writing SU binary to /system/bin<br />
failed to copy 'su' to '/data/local/su': Permission denied<br />
Unable to chmod /data/local/su: No such file or directory</p></blockquote>
<p><span id="more-1879"></span></p>
<h3 style="text-align: center;">Получение root привилегий</h3>
<p>Все эти скрипты использовали какуе-то непонятную утилиту mempodroid. Зачем Она нужна я так и не понял. Потом, как оказалось, все получение root прав сводится к сохранению утилиты su в каталог /system/bin. Вся загвоздка в том, что эта файловая система находися в режиме ReadOnly и чтобы на неё что-то записать её нужно перемонтировать. В Ядре linux которое было на планшете по умолчанию такая функция была заблокирована. В итоге получается следующая последовательность действий:</p>
<ul>
<li>Установить набор утилит <a href="http://developer.android.com/sdk/index.html" target="_blank">Android SDK</a> (я поставил SDK Tools Only)</li>
<li>Разблокировать NAND накопитель(внутренняя flash)</li>
<li>Загрузиться с ядром поддерживающим перемонтирование в ReadWrite</li>
<li>Перемонтировать файловую систему в ReadWrite</li>
<li>Переписать утилит su и назначить на неё нужные права</li>
</ul>
<p>Для упрощения я написал следующий скрипт(можно скачать по ссылке в конце статьи ):</p>
<blockquote><p>echo "Разблокировка NAND"<br />
adb wait-for-device<br />
adb reboot-bootloader<br />
echo "Планшет перезагрузится и запросит опции разблокировки!"<br />
fastboot oem unlock<br />
echo " Выберите функцию разблокирования (unlock) на вашем планшете!"<br />
echo "после выбора, A200 запросит перезагрузку,просто нажмите любую клавишу"<br />
echo " здесь и планшет перезагрузится..."<br />
echo ""<br />
echo "Загрузка нужного ядра с поддержкой перемонтирования..."<br />
fastboot reboot<br />
adb wait-for-device<br />
adb reboot-bootloader<br />
fastboot flash boot boot.img<br />
fastboot reboot<br />
adb wait-for-device<br />
echo "Перемонтирование..."<br />
adb remount<br />
echo "Загрузка утилиты su"<br />
adb push su /system/bin/<br />
echo "Смена прав на утилиту (разрешаем её выполнение)"<br />
adb shell chmod 6755 /system/bin/su<br />
echo "Установка программы superoot(можно ставить из маркета)"<br />
adb install Superuser.apk<br />
fastboot reboot</p></blockquote>
<p>Скрипт нужно запускать из каралога с файлами(ядро, утилита su). Предварительно ещё я добавлял правило для udev.</p>
<blockquote><p>echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="0502", ATTRS{idProduct}=="337c", MODE="0666", OWNER="ln"' | sudo tee /etc/udev/rules.d/50-android.rules</p></blockquote>
<p>Узнать правильные idVendor и idProduct можно утилитой lsusb.</p>
<p><em>P.S. Для выполнения сих действий в Windows нужно ещё поставить драйвера для планшета. И использовать скрипт соответственно с пометкой -win.bat.</em></p>
<div id="dc_vk_code" style="display: none;"></div>
<h3 style="text-align: center;">Установка необходимых программ и подключение модема</h3>
<p>Так. root права колучили. Теперь нам нужно идти в Android Play(market по старому) и поставить следующие программы:</p>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.noshufou.android.su">Superuser</a> - по сути GUI для управления командой su (в том случае если вы не стали ставить её моим скриптом)</li>
<li><a href="https://play.google.com/store/apps/details?id=de.draisberghof.pppwidget">PPP Widget </a>-  утилита для управления модемом.</li>
</ul>
<p>После установки виджета, вытаскиваем его на рабочий стол. Подключаем модем, нажимаем<em> настройки</em> и вбиваем всякие APN, username... Далле выходим и жмем подключить.</p>
<h3>Скачать:</h3>
<ul>
<li><a href="http://devhead.ru/download/AcerA200_root_devhead_ru.tbz2">Архив со скримтами, ядром, утилитой su и т.д.</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/kak-poluchit-root-prava-na-planshete-android-4/feed</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>Pygame на Android</title>
		<link>http://devhead.ru/read/pygame-na-android</link>
		<comments>http://devhead.ru/read/pygame-na-android#comments</comments>
		<pubDate>Wed, 11 Apr 2012 09:32:11 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=1583</guid>
		<description><![CDATA[Pygame Subset for Android отличная штука которая позволяет с минимальным количеством изменением кода портировать на Android,то что было написано для PC на библиотеке pygame. Помню что я как-то написал бинарные часы и сейчас меня приспичило их портировать, чтобы протестировать работоспособность. 1. Подключаем устройство по USB для режима отладки (Можно использовать виртуальную, но они достаточно сильно [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>Pygame Subset for Android</strong> отличная штука которая позволяет с минимальным количеством изменением кода портировать на Android,то что было написано для PC на библиотеке pygame. Помню что я как-то написал бинарные часы и сейчас меня приспичило их портировать, чтобы протестировать работоспособность.  <span id="more-1583"></span></p>
<p>1. Подключаем устройство по USB для режима отладки (Можно использовать виртуальную, но они достаточно сильно глючат)</p>
<blockquote><p>После подключения к компьютеру, включите режим отладки на телефоне(планшете)  Настройки --&gt; Для разработчиков --&gt;Отладка по USB</p></blockquote>
<p>2. <a href="http://pygame.renpy.org/dl/">Скачиваем и распаковываем последнюю версию.</a></p>
<p>3. Тестирование на недостающие компоненты</p>
<blockquote><p>$./android.py test</p></blockquote>
<p>4. Установка AndroidSDK</p>
<blockquote>
<pre>$./android.py installsdk</pre>
</blockquote>
<p>5. Создаём каталог</p>
<blockquote>
<pre>mkdir binaryclock</pre>
</blockquote>
<p>6. Создаём в папке  файл main.py с исходным кодом:</p>
<p>&nbsp;</p>
<pre class="brush: python">import pygame

# Import the android module. If we can't import it, set it to None - this
# lets us test it, and check to see if we want android-specific behavior.
try:
    import android
except ImportError:
    android = None


'''
************************************************************************
*Binary clock *
*Copyright (C) 2010 Komarov Alexander *
* *
*This program is free software: you can redistribute it and/or modify *
*it under the terms of the GNU General Public License as published by *
*the Free Software Foundation, either version 3 of the License, or *
*(at your option) any later version. *
* *
*This program is distributed in the hope that it will be useful, *
*but WITHOUT ANY WARRANTY; without even the implied warranty of *
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See t *
*GNU General Public License for more details. *
*
*You should have received a copy of the GNU General Public License *
*along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;. *
************************************************************************'''

import sys
import time
class Clock:
     screen=pygame.display.set_mode((640,480))
     def __init__(self):
          pygame.init()
          pygame.display.set_caption('Binary Clock')

     def main(self):
         
         while True:
             for e in pygame.event.get():
                 if e.type == pygame.QUIT:
                     exit(0)
                 elif e.type == pygame.KEYDOWN and e.key == pygame.K_ESCAPE:
                     exit(0)
             self.capture()
             self.logic()
             pygame.display.flip()
             time.sleep(0.5)

     def capture(self):

         #Hour
         #Row1
         pygame.draw.circle(self.screen, (255, 255, 255), (70, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (70, 300), 30 )
         #Row2
         pygame.draw.circle(self.screen, (255, 255, 255), (170, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (170, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (170, 200), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (170, 100), 30 )
         #Min
         #Row1
         pygame.draw.circle(self.screen, (255, 255, 255), (270, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (270, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (270, 200), 30 )
         #Row2
         pygame.draw.circle(self.screen, (255, 255, 255), (370, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (370, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (370, 200), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (370, 100), 30 )
         #Sec
         #Row1
         pygame.draw.circle(self.screen, (255, 255, 255), (470, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (470, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (470, 200), 30 )
         #Row2
         pygame.draw.circle(self.screen, (255, 255, 255), (570, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (570, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (570, 200), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (570, 100), 30 )
     def logic(self):
         #Hour
         if int(time.asctime( time.localtime(time.time()) )[11])==1:
             pygame.draw.circle(self.screen, (255, 0, 0), (70, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[11])==2:
             pygame.draw.circle(self.screen, (255, 0, 0), (70, 300), 30 )

         if int(time.asctime( time.localtime(time.time()) )[12])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==6:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 200), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==7:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 300), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==8:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 100), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==9:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 100), 30 )
         #Min
         if int(time.asctime( time.localtime(time.time()) )[14])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[14])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[14])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[14])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[14])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 200), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==6:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 200), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==7:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 300), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==8:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 100), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==9:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 100), 30 )
        #Sec
         if int(time.asctime( time.localtime(time.time()) )[17])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[17])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[17])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[17])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[17])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==6:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 200), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==7:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 300), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==8:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 100), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==9:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 100), 30 )
     
     
start=Clock()
start.main()</pre>
<p>&nbsp;</p>
<p>Вы можите убедиться, что изминения с оригиналом минимальны. <a href="https://github.com/ignusius/BinaryClock/blob/master/binaryclock.py">Сравнить.</a></p>
<p>7.Конфигурирование проекта (нужно ответить на вопросы)</p>
<blockquote>
<pre>./android.py configure binaryclock</pre>
</blockquote>
<p>8. Сборка пакета и установка пакета на устройство</p>
<blockquote>
<pre>./android.py build binaryclock release install</pre>
</blockquote>
<p>Возможная ошибка<strong> <em>error</em>: <em>insufficient permissions for device</em></strong> Устройство не определено, чтобы оно корректно определилось, нужно сделать некоторые действия:</p>
<blockquote><p>#usb-devices</p></blockquote>
<blockquote><p>T:  Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 15 Spd=480 MxCh= 0<br />D:  Ver= 2.00 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1<br />P:  Vendor=18d1 ProdID=0003 Rev=02.30<br />S:  Manufacturer=USB Developer<br />S:  Product=Android<br />S:  SerialNumber=20080411<br />C:  #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=500mA<br />I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage<br />I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs</p></blockquote>
<p>В вашем случае может быть немного не такие параметры, из всего списка нам нужен Vendor=18d1</p>
<p>Добавляем строки:  #nano /etc/udev/rules.d/51-android.rules</p>
<blockquote>
<p>SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", &lt;---Vendor</p>
<p>SYMLINK+="android_adb", MODE="0666"</p>
</blockquote>
<div>Применяем права:</div>
<blockquote>
<div># chmod a+r /etc/udev/rules.d/51-android.rules</div>
</blockquote>
<div>Пробуем заново скомпилить проект.</div>
<p>&nbsp;</p>
<p>9.Отладка</p>
<blockquote>
<p>./android.py logcat</p>
</blockquote>
<h3>Ссылки:</h3>
<p><a href="http://pygame.renpy.org">http://pygame.renpy.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/pygame-na-android/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Прошивка HTC Wildfire</title>
		<link>http://devhead.ru/read/proshivka-htc-wildfire</link>
		<comments>http://devhead.ru/read/proshivka-htc-wildfire#comments</comments>
		<pubDate>Fri, 20 Jan 2012 08:07:57 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[HTC Wildfire]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=1536</guid>
		<description><![CDATA[Недавно волей судеб попал мне в руки телефон HTC Wildfire, как известно эта модель работает под управление ОС Android. Я искал пути прошивки его без лишнего красноглазия так как особо нет настроения :( Нашёл якобы самый простой путь, скачал прошивку (exe-ник который якобы всё сделает), но как обычно такой простой и очевидный путь оказался непростым. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Недавно волей судеб попал мне в руки телефон HTC Wildfire, как известно эта модель работает под управление ОС Android. Я искал пути прошивки его без лишнего красноглазия так как особо нет настроения :( Нашёл якобы самый простой путь, скачал прошивку (exe-ник который якобы всё сделает), но как обычно такой простой и очевидный путь оказался непростым.  <span id="more-1536"></span> После того как вы подключите телефон к компьютеру и после того как все драйверы установятся, прежде чем воспользоваться это прошивкой, нужно поставить HTC Sync иначе нечего не получится.  Порядок действий:  Установка драйверов ( имеются на CD)</p>
<ul>
<li><a href="../download/RUU_Buzz_Froyo_HTC_WWE_2.22.405.1_Radio_13.55.55.24H_3.35.20.10_release_160191_signed.exe">Скачать прошивку </a></li>
<li><a href="http://dl4.htc.com/managed-assets/support/software/htc-sync/setup_3.0.5606.exe">Скачиваем HTC Sync</a></li>
<li>Установить HTC Sync</li>
<li>Запустить:</li>
</ul>
<blockquote>
<p>RUU_Buzz_Froyo_HTC_WWE_2.22.405.1_Radio_13.55.55.24H_3.35.20.10_release_160191_signed.exe</p>
</blockquote>
<ul>
<li>Теперь можно расслабиться на ближайшие 15-20 минут ;)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/proshivka-htc-wildfire/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->