Tampilkan postingan dengan label Tutorial Android. Tampilkan semua postingan
Tampilkan postingan dengan label Tutorial Android. Tampilkan semua postingan

Selasa, 13 November 2012

Beberapa Tools/SDK/Engine Untuk Pengembangan Aplikasi Augmented Reality


Mau share Beberapa Tools/SDK/Engine Untuk Pengembangan Aplikasi Augmented Reality. Barangkali teman-teman ada yang berminat untuk membuat aplikasi Augmented Reality, langsung cek aja linknya :

Berbasis Marker & Gambar :
ARToolKit (http://www.hitl.washington.edu/artoolkit/)
FLARToolKit (http://www.libspark.org/wiki/saqoosha/FLARToolKit/en)
FLARManager (http://words.transmote.com/wp/flarmanager/)
SLARToolKit (http://slartoolkit.codeplex.com/)
NyARToolKit (http://nyatla.jp/nyartoolkit/wp/)
D'Fusion Studio (http://www.t-immersion.com/products/dfusion-suite/dfusion-studio)
metaio Unifeye Design (http://www.metaio.com/software/design/)
IN2AR (http://in2ar.com/)
ATOMIC Authoring Tool (http://www.sologicolibre.org/projects/atomic/en/index.php)
OpenSpace3D (http://www.openspace3d.com/)
Junaio (http://www.junaio.com/)
ARmedia Augmented Reality Plugin (http://www.inglobetechnologies.com/en/)
Aurasma (http://www.aurasma.com/)
AndAR (http://code.google.com/p/andar/)
ArUco (http://www.uco.es/investiga/grupos/ava/node/26)
BazAR (http://cvlab.epfl.ch/software/bazar/index.php)
DroidAR (http://code.google.com/p/droidar/)
flare*tracker (http://www.imagination.at/en/?Products:Augmented_Reality_for_Flash:flare%2Atracker)
flare*nft (http://www.imagination.at/en/?Products:Augmented_Reality_for_Flash:flare%2Anft)
Goblin XNA (http://goblinxna.codeplex.com/)
instantreality (http://www.instantreality.org/)
iPhone ARKit (http://www.iphonear.org/)
LinceoVR (http://linceovr.seac02.it/)
Eligo (http://eligo.seac02.it/)
Minerva (http://sourceforge.net/projects/minervaproject/)
MXRToolkit (http://mxrtoolkit.sourceforge.net/)
Popcode (http://www.popcode.info/)
PTAM (http://www.robots.ox.ac.uk/~gk/PTAM/)
Qoncept AR (http://www.kudan.eu/)
Robocortex (http://www.robocortex.com/)
SSTT (http://technotecture.com/augmentedreality)
String (http://www.poweredbystring.com/)
osgART (http://osgart.org/wiki/index.php/Main_Page)
Studierstube (http://studierstube.icg.tugraz.at/main.php)
Vuforia AR (https://developer.qualcomm.com/develop/mobile-technologies/augmented-reality)
Win AR (http://r2m.nus.edu.sg/cos/o.x?c=/r2m/license_product&ptid=5730&func=viewProd&pid=22)
windage (http://code.google.com/p/windage/)
YVision (http://www.yvision.com/)
ALVAR (www.vtt.fi/multimedia/alvar.html)
Layar (http://www.layar.com/)
SATCH (https://satch.jp/en/)
buildAR (https://buildar.com/)
onvert (http://onvert.com/)
Serge (http://www.sergesdk.com)
ARmsk (http://armsk.org/)
ARLab Image Matching (http://www.arlab.com/imagematching)
Designer's AR Toolkit (http://ael.gatech.edu/lab/research/design/dart/)
Obvious Engine (http://obviousengine.com/)
PointCloud (http://pointcloud.io/)


Berbasis Lokasi :
Layar (http://www.layar.com/)
Wikitude (http://www.wikitude.com/en/)
Junaio (http://www.junaio.com/)
Aurasma (http://www.aurasma.com/)
3DAR (http://3dar.us/)
DroidAR (http://code.google.com/p/droidar/)
instantreality (http://www.instantreality.org/)
KHARMA (https://research.cc.gatech.edu/kharma/)
mixare (http://www.mixare.org/)
LibreGeoSocial (http://www.libregeosocial.org/)
buildAR (https://buildar.com/)
Look! AR (http://www.lookar.net/)
ARLab AR Browser (http://www.arlab.com/arbrowser)


Berbasis Face Tracking :
Viewdle (http://viewdle.com/index.html)
Beyond Reality Face (http://www.beyond-reality-face.com/)
metaio Unifeye Design (http://www.metaio.com/software/design/)
instantreality (http://www.instantreality.org/)
Luxand FaceSDK (http://www.luxand.com/)
SHORE (http://www.iis.fraunhofer.de/en/bf/bsy/produkte/shore/)
Motion Nexus (http://motionnexus.com/)


Berbasis Skeleton Tracking :
Kinect for Windows SDK (http://www.microsoft.com/en-us/kinectforwindows/develop/)
PrimeSense OpenNI/NITE (http://www.primesense.com/en/openni)
AIRKinect (http://www.as3nui.com/air-kinect/)
OpenSpace3D (http://www.openspace3d.com/)
Motion Nexus (http://motionnexus.com/)


Minggu, 11 November 2012

Penyebab Force Close pada Android



Bagi kamu para developer Android pasti sudah familiar dengan namanya Force Close. Terkadang kita bingung padahal tidak ada error pada kodingan tapi setelah di Running kok malah muncul tulisan Force Close?

Nahh berikut ada beberapa penyebab aplikasi Force Close :
  1. Belum menambahkan user permission di manifest
  2. Belum mendaftarkan activity class di manifest
  3. Kesalahan pengaturan fill_parent atau wrap_content pada layout
  4. Aplikasi terlalu lama loading
  5. Salah tipe casting untuk findViewById() saat mereference ui widget
  6. Lupa menambahkan show() pada toast
  7. Tidak melakukan clean project setelah debbuging di xml
  8. Isi database tidak muncul karena memory yang kurang
  9. Terlalu banyak inner layout yang menyebabkan recursive
  10. Kesalahan pada coloum _id untuk dbase adapter
  11. Belum menambahkan android:id="@id/android:list" pada listView tag di xml layout jika Activity menggunakan extend ListActivity
  12. Pengaturan warna di Android adalah 32 ARGB integer value
Nahh sebelum kamu jadi panic at the disco coba cek dulu beberapa kesalahan diatas. Semoga bermanfaat :)



Kamis, 11 Oktober 2012

Mengatasi Internet Emulator Android yang Terhalang Proxy

Hello hello hello, selamat pagi teman-teman (nengok jam laptop menunjukkan pukul 06:22 pagi). Di pagi yang cerah ini sebelum praktikum PPCD (Pengantar Pengolahan Citra Digital) pengganti (karena hari senin kmaren kebetulan saya gak ikutan). Saya  mau menyempatkan diri membuat atau memberi tips bagi kamu yang kesulitan internetan di Emulator Android karena ternyata kampus kamu menggunakan proxy. Padahal udah di setting dan internetan udah bisa! Tapi kok diemulatornya gak jalan ya?

Nahh gak usah pusing-pusing, sebenarnya kita hanya perlu sedikit menggunakan CMD dan menambahkan PATH emulator androidnya. Bagaimana caranya? Cekidott....
1. Tambahkan dulu lokasi tools SDK untuk emulator android ke dalam PATH. Lokasinya dimana ya? Hmm... Kalau kalian menggunakan ECLIPSE coba klik menu window -> preferences -> lalu pilih Android. Nahh nanti disana ada SDK Location, copy saja dan pastekan di File Explorer lalu masuk ke folder tools atau tambahkan saja tools pada ujung lokasi tadi. Kalau saya letaknya di C:\Users\Ozi Jendela-id\AppData\Local\Android\android-sdk\tools.
2. Setelah itu klik kanan pada My Computer -> Properties -> Advanced System Settings -> pada tab Advanced pilih Environment Variables. Lalu pada PATH tambahkan C:\Users\Ozi Jendela-id\AppData\Local\Android\android-sdk\tools. Setelah selesai klik OK.
3. Langkah selanjutnya buka CMD (Command Prompt) lalu run sebagai Administrator lalu ketikkan perintah :
emulator -avd namaEmulator -http-proxy proxy:port
Keterangan :
namaEmulator : Ganti sesuai nama emulator yang kamu buat

Misal kalau di IPB saya menggunakan perintah seperti ini :
emulator -avd Android233 -http-proxy http://172.17.0.18:8080

Oke, sudah selesai selamat besenang-senang dengan Androidnya :)


Senin, 01 Oktober 2012

Android Text to Speech | Tutorial Android

Kali ini saya mau berbagi contoh aplikasi sederhana Text to Speech pada Android. Aplikasinya sederhana saja, jadi nanti aplikasinya mengeluarkan suara dari Text yang kita inputkan. Mau tau gimana cara membuatnya? Cekidott....

1. Buat project baru dengan nama "TextToSpeech" dengan nama activity "AndroidTextToSpeechActivity" dan layoutnya "main".

2. Masukkan kodingan berikut pada AndroidTextToSpeechActivity.java
import java.util.Locale;
import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;

public class AndroidTextToSpeechActivity extends Activity implements
        TextToSpeech.OnInitListener {
    /** Called when the activity is first created. */

    private TextToSpeech tts;
    private ImageButton btnSpeak;
    private EditText txtText;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tts = new TextToSpeech(this, this);

        btnSpeak = (ImageButton) findViewById(R.id.btnSpeak);

        txtText = (EditText) findViewById(R.id.txtText);

        // button on click event
        btnSpeak.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                speakOut();
            }

        });
    }

    @Override
    public void onDestroy() {
        // Don't forget to shutdown!
        if (tts != null) {
            tts.stop();
            tts.shutdown();
        }
        super.onDestroy();
    }

    public void onInit(int status) {
        // TODO Auto-generated method stub

        if (status == TextToSpeech.SUCCESS) {

            int result = tts.setLanguage(Locale.US);

            // tts.setPitch(5); // set pitch level

            // tts.setSpeechRate(2); // set speech speed rate

            if (result == TextToSpeech.LANG_MISSING_DATA
                    || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                Log.e("TTS", "Language is not supported");
            } else {
                btnSpeak.setEnabled(true);
                speakOut();
            }

        } else {
            Log.e("TTS", "Initilization Failed");
        }

    }

    private void speakOut() {

        String text = txtText.getText().toString();

        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
    }
}
 3. Selanjutnya pada main.xml, masukkan ....

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#ffffff">
   
    <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Text To Speech"
                android:padding="15dip"
                android:textColor="#000000"
                android:textSize="26dip"
                android:gravity="center"
                android:textStyle="bold"/>
   
    <EditText android:id="@+id/txtText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Enter some text to speak"
        android:layout_marginTop="20dip"       
        android:layout_margin="10dip"/>

    <ImageButton
        android:id="@+id/btnSpeak"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/speak" />

</LinearLayout>

Sebelumnya buat dulu folder baru di res dengan nama drawable dan masukkan gambar ini (speak.png).


4. Habis itu coba RUN deh.... Kira-kira nanti keluarnya seperti ini,


Setelah itu coba masukkan text dan klik gambar speaker. Taraaa.... Ada suaranya kan? XD



Senin, 23 Juli 2012

QuickAction 3D | Android

Nemu library Android yang mantap nih buat dicoba. Namanya QuickAction 3D, jadi fungsinya kalau nanti button-nya kita klik bakalan muncul beberapa pilihan menu yang bisa kita masukkan dan kita berikan action. Berikut kira-kira gambarannya :

QuickAction 3D
QuickAction 3D - 2
Gimana? Mantap bukan? Semoga bisa bermanfaat... :)






Kamis, 12 Juli 2012

Ramdroid Rev 1.1 | My First Android Project


Hmmm... karena kmaren ada yang ngasih masukan jadi aplikasinya ada yang saya ganti. Yang diganti atau diperbaiki sebagai berikut :
- Tampilan untuk lihat arah kiblat
- Sedikit perbaikan untuk kalimat-kalimat pada do'a karena masih ada yang salah tulis, maklum typo :p

Berikut tampilan aplikasinya :

Beranda
Jadwal Sholat
Arah Kiblat
Asmaul Husna
Do'a Harian
Ayat Motivasi
About
Kalau teman-teman masih ada masukan demi perbaikan aplikasi ini, teman-teman bisa mengirimkan kritik dan sarannya ke :
jie.ilkom46ipb@gmail.com

Jumat, 08 Juni 2012

Membuat splash screen android

Yeahhh... Akhirnya kmaren selesai presentasi 2 project sekaligus. Sesuatu banget pokoknya :p Sekarang tanggung jawab saya tinggal PSBO (Pengembangan Sistem Berorientasi Objek), tapi projectnya belum saya kerjain padahal senin ini sudah mau UAS. Ckckck, semangatlahh...

Oke langsung saja ke topik utama yaitu bikin splash screen pada android. Sebelumnya teman-teman sudah pada tahu kan apa itu splash screen? Nahh splash screen itu adalah tampilan awal sebelum program dijalankan. Splash screen juga bisa digunakan untuk mempercantik aplikasi yang dibuat supaya aplikasinya kelihatan lebih professional gitu :p

Langsung saja ke kodingannya ya, supaya saya tidak panjang lebar lagi ngomongnya. hehe

Pertama kita buat splash.java


import jie.belajar.android.BuserActivity;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.MotionEvent;

public class Splash extends Activity {
    protected boolean _active = true;
    protected int _splashTime = 2000;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.splash);

        // thread for displaying the SplashScreen
        Thread splashTread = new Thread() {
            @Override
            public void run() {
                try {
                    int waited = 0;
                    while(_active && (waited < _splashTime)) {
                        sleep(100);
                        if(_active) {
                            waited += 100;
                        }
                    }
                } catch(InterruptedException e) {
                    // do nothing
                } finally {
                    finish();
                    Intent newIntent=new Intent(Splash.this,BuserActivity.class);
                    startActivityForResult(newIntent,0);
                }
            }
        };
        splashTread.start();
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            _active = false;
        }
        return true;
    }
}

Selanjutnya kita buat splash.xml
Untuk splash.xml saya tambahin progressBar, supaya tampilannya lebih menarik :D

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center|center_horizontal"
    android:background="@drawable/splash">

    <ProgressBar
        android:id="@+id/progressBar2"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
NB : Untuk yang berwarna Merah berarti saya membuat splash screen dari gambar dari folder drawable dengan nama splash.png.

 Terakhir untuk AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jie.belajar.android"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
      
        <activity
            android:name=".Splash"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
        </activity>
       
        <activity
            android:name=".BuserActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
     </application>
</manifest>

 Oke sudah selesai, segitu saja... hehe




Kamis, 07 Juni 2012

Parsing timeline twitter with JSON | Android

Masih di minggu-minggu GALAU presentasi project dan UAS. Saya mau sharing-sharing dulu potongan-potongan kodingan yang bakalan saya pake buat project saya nantinya. Itung-itung bagi-bagi pengetahuan sama temen-temen dan juga sebagai catatan online bagi saya. :p

Adapun yang mau saya bagi adalah cara Parsing timeline twitter dengan JSON untuk Android. Nah jadi intinya kita mau parsing twit-twitnya sasaran (ngomongnya sasaran... :p) kita supaya bisa ditampilin di Android kesayangan. Adapun caranya :

  • Di Android manifest-nya jangan lupa tambahkan <uses-permission android:name="android.permission.INTERNET" /> dulu supaya nanti kita punya hak akses buat internet.
  • Untuk di Main.xml-nya
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/json"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:autoLink = "all"
    />
</ScrollView>


  •  Nahh yang terakhir yang paling penting nih, kodingan [dot]java-nya
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class JSON extends Activity {
TextView json;
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String twitterTimeline = getTwitterTimeline();
try {
String tweets = "";
JSONArray jsonArray = new JSONArray(twitterTimeline);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
tweets +="Transjakarta \n";
tweets += "" + jsonObject.getString("text") + "\n\n";
}
    json= (TextView)findViewById(R.id.json);
    json.setText(tweets);
} catch (JSONException e) {
e.printStackTrace();
}
    }
    public String getTwitterTimeline() {
StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://twitter.com/statuses/user_timeline/BLUTransJakarta.json");
try {
HttpResponse response = client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} else {
//Couldn't obtain the data
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return builder.toString();
}
}




Skrinsut : 


Twit-nya BLUTransjakarta


NB : Untuk yang warna merah, teman-teman bisa ganti dengan timeline apa yang mau teman-teman parsing. Kalau saya, parsing timeline-nya twitter BLUTransJakarta.


Gimana??  Udah bisa belum?? Haha, untuk lebih mudahnya download aja projectnya dimari.




Kamis, 24 Mei 2012

Tutorial Menampilkan CCTV Transjakarta di Android

Tutorial Menampilkan CCTV Transjakarta di Android - Yeahhh... sekarang saya lagi pusing-pusingnya dengan deadline seabrek project kuliah yang belum selesai sama sekali! haha #devil laugh. Lagi asyik-asyiknya mengutarakan isi hati di tulisan ini, saya mendapatkan berita yang menyedihkan.

"Telah terjadi penembakan di Masjid Al-Hurriyyah IPB pada saat sholat Jum'at dan dari informasi yang saya dari @korpusIPB ada 2 orang korban, yang merupakan UKK (Unit Keamanan Kampus) dan dinyatakan sudah meninggal dunia"Innalillahiwainnailahi rojiun, semoga mereka meninggal dalam keadaan sahid. Amiennn, #Do'a mulai....

Lanjut lagi ke pokok permasalah, yaitu bagaimana cara menampilkan CCTV nya Transjakarta dari websitenya yaitu transjakarta.co.id. Sebenarnya ini project kuliah saya dan sampai sekarang saya masih menggalau gimana caranya make algoritma A* untuk pencarian rute terdekatnya transjakarta, karena masih banyak project-project lain yang harus diselesaikan akhirnya project yang ini sedikit saya telantarkan :p. Maaf ya teman-teman T.T

Oke, karena saya lagi malas merangkai kata. Langsung saja saya bagikan source code menampilkan kamera CCTV transjakarta di ANDROID. Semoga bisa membantu teman-teman yang sedang belajar ANDROID seperti saya :D

Berikut Source codenya :

>> Main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
<ImageView
    android:id="@+id/gambar"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    ></ImageView>

</LinearLayout>

Note : Untuk Main.xml kita tambahkan ImageView sebagai tempat CCTVnya nanti.

>> Activity.java



import java.io.InputStream;
import java.net.URL;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;
public class Cctv2Activity extends Activity {
    ImageView iv;
    Runnable jalankan;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        loadGambar();
     
        jalankan = new Runnable() {
public void run() {
try {
loadGambar();
} catch (Exception e) {
e.printStackTrace();
}
new Handler().postDelayed(jalankan, 100);
}
};
new Handler().postDelayed(jalankan, 100);
    }
    private void loadGambar(){
    try{
    iv = (ImageView) findViewById(R.id.gambar);
    URL url = new URL("http://transjakarta.co.id/haltecam/Bank_Indonesia.jpg?1337867289300");
    InputStream is = (InputStream) url.getContent();
    Drawable gambar = Drawable.createFromStream(is, "src");
    iv.setImageDrawable(gambar);
    is.close();
    }catch (Exception e){
    e.printStackTrace();
        }
        }
}

Note :

  • Penjelasan untuk yang berwarna BIRU : Fungsinya untuk mer-refresh gambar CCTV transjakarta dalam 100 miliseconds. Jadi CCTV transjakarta itu dikirimkan dalam bentuk gambar yang diperbarui terus perdetiknya. Nahh jadi kita harus menggunakan fungsi ini untuk memperbarui gambar tersebut terus menerus, kalau kita tidak menggunakan fungsi ini maka gambar yang akan kita lihat tidak akan pernah berubah kecuali kalau kita keluar aplikasi dan aplikasinya kita buka kembali.
  • Penjelasan untuk yang berwarna MERAH : Itu merupakan URL dari CCTV di Halte Bank Indonesia,  adapun cara mendapatkannya kita tinggal Klik kanan pada gambar CCTV di website transjakarta, lalu Copy Image URL. Setelah itu Paste-kan pada URL di kodingan kita tersebut.
Terakhir, kita jangan sampai lupa untuk menambahkan permissions untuk mengaktifkan internet di Manifest.xml. 

>> Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jie.coba.lagi"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk android:minSdkVersion="6" />
    <uses-permission android:name="android.permission.INTERNET"/>     <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".Cctv2Activity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Yapzz... Mungkin hanya sebatas itu yang bisa saya share ke teman-teman. Apabila ada salah-salah kata saya mohon maaf, karena saya juga masih NEUBIE dan baru belajar ANDROID.

Skrinsut aplikasi yang dibuat :

CCTV Halte BI


Download source code disini.

Selamat berkreasi ^^


Jumat, 11 Mei 2012

Ubah file berekstensi apk ke java

Sebuah file berekstensi .apk bagi pengguna android tentu sudah tidak asing lagi. File dengan ekstensi .apk ini sering kali digunakan untuk meng-install aplikasi ke dalam device miliknya secara offline, sehingga tidak perlu menggunakan koneksi data agar dapat terhubung dengan google play strore.

Tapi bagaimana jika para pengembang ingin mempelajari logika kerja dari aplikasi berekstensi .apk tersebut sehingga bisa dirubah menjadi source code dalam ekstensi java? Seperti yang kita ketahui ketika kita mengembangkan aplikasi android, kita menggunakan file berekstensi .java. File tersebut akan dikompilasi menjadi dex agar dapat berjalan pada Dalvix Virtual Machine (DVM). File-file dex inilah yang akan dibungkus menjadi .apk. File berekstensi .apk ini bisa kita ilustrasikan seperti sebuah archive (zip file). Sehingga kita perlu meng-ekstract filenya menjadi file-file berekstensi .java.

>> Cara melakukannya :

Convert apk to jar :
1. Download dulu file berekstensi .apk di PC anda
2. Download Dex2Jar disini. Setelah itu ekstrak file .zip tersebut
3. Jalankan perintah untuk convert apk to jar
- Buka cmd
- Arahkan pada folder tempat Dex2Jar tadi berada
- Lalu ketik :
dex2jar targetapp.apk





Setelah dijalankan, maka file 'targetapp.apk.dex2jar.jar' akan terbentuk.


Decompiling the Jar files to Java :
- Cara Pertama
1. Download dulu JavaDecompiler disini
2. Buka file yang telah teman-teman ubah dari apk menjadi jar tadi dengan menggunakan JS-GUI yang sudah teman-teman download.




- Cara Kedua
1. Download dulu JAD disini
2. Extract file jar ke folder dengan nama "src". Gunakan utility seperti winzip, winrar dan sejenisnya. (folder "src" harus berada menjadi satu dengan folder dimana file JAD dan targetapp.jar tadi berada).



3. Buka file dengan menggunakan JAD. Dengan cmd jalankan dengan menggunakan perintah berikut :
jad -o -r -sjava -dsrc src/**/*.class


4. Oke! Sekarang folder src akan berisi file java yang telah dicompile yang siap untuk diperiksa dan dipelajari kode manualnya. 




Catatan : 
Ada beberapa file .apk yang di proteksi oleh pengembang (developer), sehingga tidak semua file .apk bisa di decompile.

Sumber : http://maxiandroid.blogspot.com/2012/03/decompile-apk-menjadi-java-source-code.html