Sabtu, 18 Juli 2020

Komponen Android Service



Komponen Android Service

Pengertian Service
  • Sebelumnya telah belajar mengenai activity dan implementasinya. Activity adalah komponen yang memberikan pengalaman kepada pengguna secaralangsung. Pengguna dapat melihat dan berinteraksi diatasnya.
  • Service beradap ada sisi yang lain, komponen ini tidak memiliki antar muka dan bahkan pengguna tidak akan akan tahu bagaimana dia bekerja. Pengalaman yang diberikan oleh service hanya berupa proses yang tidak terlihat. Ia digunakan untuk menjalankan beragam macam proses yang memakan waktu lama.

  • Walaupun berjalan secara background, pada dasarnya service dan komponen Android lainnya berjalan pada satu proses dan thread yang sama yaitu mainthread atau uithread. Bekerja di background bukan berarti ia bekerja secara asynchronous. Service tetap membutuhkan threadter pisah jika kita ingin melakukan proses yang membutuhkan komputasi intensif atau yang memakan waktu.
Contoh Pemanfaatan Service
  • Aplika sisosial media atau aplikasi yang memiliki kemampuan untuk menerima push notification. Aplikasi semacam ini pasti memiliki sebuah service yang berjalan dalam posisi standby untuk selalu menerima pesan yang masuk.
  • Aplikasi chat juga membutuhkan service untuk melakukan pengiriman dan menerima pesan yang di kirimkan oleh pengguna.
  • Aplikasi pemutar musik juga melakukan hal yang sama. Untuk memberikan pengalaman yang lebih baik kepada pengguna, aplikasi pemutar musik biasanya meletakkan proses streaming atau memainkan musik di komponen service dengan tetap mempertahankan integrasi dengan komponen lain, misalnya notifikasi. dll
2 Bentuk Service

  • Service berjenis ini adalah tipe yang dijalankan oleh komponen lain, misal activity. Sekali dijalankan, service ini akan berjalan selama belum dimatikan atau proses yang dijalankan selesai. Sevice akan tetap berjalan walaupun komponen yang lain dimatikan oleh sistem Android. Umumnya penggunaan service ini adalah untuk melakukan proses yang tidak memberikan nilai balik ke komponen yang memanggilnya. Contohnya adalah, mengunduh atau mengunggah berkas.
  • Bound Service jenis ini merupakan tipe service yang dijalankan oleh komponen lain, namun saling mengikat. Hubungan yang terjadi antar kedua komponen tersebut seperticlient-server. Bisa saling menerima hasil dan menerimarequestyang ada. Pada service ini dimungkinkan terjadi proses IPC (Interprocess Communication).Service ini akan tetap berjalan di background selama masih ada komponen lain yang mengikatnya. Jika tidak, maka Service akan dimatikan oleh sistem. Aplikasi pemutar musik merupakan salah satu jenis aplikasi yang mengimplementasikan service jenis ini.
Life Sycle Service



Latihan Penerapan service
Untuk melihat jalannya service, buatkan tampilan seperti disamping.
  1. Untuk melihat jalannya service, buatkan tampilan seperti disamping.
    Nama project: MyService
    Activity: Empty Activity

2. Lengkapi MainActivity.xml

3. Lengkapi MainActivity.java


4. buat kelas service bernama Origin Service dengan cara klik kanan pada package project→New→Service→Service.Origin Service akan inherit(extends) kepada kelas Service.

5. Selanjutnya pada dialog yang tampil, isikan nama kelas service yang diinginkan. Di sini kita menamainya sebagai Origin Servicedan biarkan exported dan  enabled tercentang. Klik Finish untuk menyelesaikan proses.


6. Selanjutnya, buka berkas AndroidManifest.xml pada package manifest dan perhatikan isi berkas tersebut. Service yang baru saja kita buat sudah ada di dalam tag <application>:


7. Berkas AndroidManifest sudah dibuat secara otomatis. Dengan demikian kita sudah bisa menjalankan kelas service tersebut. Namun, sebelum menjalankan aplikasi, lengkapi kode padaOriginService menjadi seperti berikut :





Lanjutan Script


12. Jalankan aplikasinya. Kliktombol ‘startservice’ dan perhatikan log-nya. Service di jalankan secara asynchronous dan mematikan dirinya sendiri setelah proses selesai.
13.Jika berhasil dijalankan, pada log androiod monitor akan seperti ini : 09-2 209:52:25.028 10209-10209/com.contoh.myserviceapp D/OriginService: OriginService dijalankan 09-2 209:52:28.074 10209-10209/com.contoh.myserviceapp D/OriginService: StopService 09-22 09:52:28.078 10209-10209/com.contoh.myserviceapp D/OriginService:onDestroy()


Latihan: Penggunaan Service Di Alarm Manager

Ada kalanya kita membutuhkan perlu suatu mekanisme untuk mengulang sebuah proses di waktu tertentu. Misalnya, kita ingin memiliki fungsi pengingat (reminder) pada aplikasi event, jadwal tayang film di bioskop, atau aplikasi alarm untuk mengingatkan kita untuk bangun di pagi hari. Di sinilah alarm manager berperan penting.

Alarm manager akan memberikan kemudahan bagi aplikasi untuk melakukan operasi berbasis waktu di luar daur hidup aplikasi itu sendiri.

Contohnya seperti yang baru saja di sebutkan di atas. Umumnya alarm memiliki beberapa karakteristik, antaralain:
  1. Dapat menjalankan obyek intent berdasarkan waktu dan interval yang ditentukan.
  2. Bisa bekerja dengan baik dengan broadcast receiver untuk menjalankan komponen lain seperti service untuk melakukan operasi tertentu.
  3. Alarm berjalan di luar daur hidup aplikasi induknya sehingga kita bisa merancan gfungsi alarm untuk melakukan sebuah aksi ketika aplikasi sedang tidak di jalankan bahkan ketika peranti dalam keadaan idle atau sleep.
  4. Esensi utama dari alarm manager adalah untuk meminimalkan penggunaan resource dan mengmhindari penggunaan timer dan background service yang berkepanjangan untuk melakukan operasi atau aksi yang di butuhkan.

Penggunaan alarm manager yang baik adalah dengan menerapkan cara berikutini:

  1. Lakukan hanya untuk proses dilokal
  2. Jaga frekuensi alarm yang dijalankan dengan interval yang tidak pendek
  3. Jika tidak terlalu penting, hindari penggunaan tipe alarm yang dapat membangunkan peranti seperti RTC_WAKEUP
  4. Jika alarm manager digunakan untuk menjadwal kan scheduling task yang terhubung kejaringan dan melakukan request ke server, misalnya unduh data terbaru atau sinkronisasi data, maka hindari penggunaan setRepeating() dan gunakan setInExactRepeating() dengan penggunaan tipe alarm berbasis ELAPSED_REALTIME. Pendekatan tersebut merupakan strategi untuk mengelompokkan proses alarm dari aplikasi yang berbeda dengan dijalankan secara bersamaan agar lebih menghemat daya baterai.

Komponen Android Intent

Komponen Android 
Intent 

Intent adalah mekanisme untuk melakukan sebuah action dan komunikasi antar
komponen aplikasi misal activity, services, dan broadcast receiver Ada tiga penggunaan
umum intent dalam aplikasi Android yaitu

1. Memindahkan satu activity ke activity lain dengan atau tidak membawa data

2. Menjalankan background service, misalnya melakukan sinkronisasi ke server dan
    menjalankan proses berulang periodic scheduler task

3. Mengirimkan obyek broadcast ke aplikasi yang membutuhkan Misal, ketika aplikasi
    membutuhkan proses menjalankan sebuah background service setiap kali aplikasi
    selesai melakukan booting Aplikasi harus bisa menerima obyek broadcast yang
    dikirimkan oleh sistem Android untuk event booting tersebut
Intent merupakan objek tipe android.content.Intent. Melalui metode startActivity() yang digunakan untuk memulai sebuah activity lain.
Intent dibagi menjadi 2, yaitu :
  1. Explicit Intent berfungsi untuk mengaktifkan komponen-komponen dalam satu aplikasi yang sama. Misalnya seperti : Berpindah Activity.
  2. Implicit Intent berfungsi untuk memanggil fungsi activity yang sudah ada di fungsi internal android seperti Dial Number, Open Browser dan lainnya.
Tutorial kali ini, saya akan mempraktekan implementasi dari Intent menggunakan Android Studio.

Langkah - langkah

  • Explicit dan Implicit Intent

Pertama-tama, buatlah dua buah activity pada Android Studio Anda. Lalu tambahkan baris program pada :

activity_main.xml

Berikut baris program pada activity_main.xm :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.acer.myapplication.PageOne">

    <Button
        android:id="@+id/explicitintent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Klik disini untuk Explicit Intent"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="150dp"/>

    <Button
        android:id="@+id/implicitintent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Klik disini untuk Implicit Intent"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="200dp"/>

</RelativeLayout>

activity_page_two.xml

Berikut baris program pada activity_page_two.xml :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.acer.myapplication.PageTwo">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ini adalah halaman kedua"
        android:textSize="30dp"
        android:layout_marginTop="150dp"
        android:layout_alignParentStart="true"
        android:layout_marginStart="30dp" />

</RelativeLayout>

PageOne.java

Berikut baris program untuk PageOne.java :

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class PageOne extends AppCompatActivity implements View.OnClickListener {
    Button explicitintent;
    Button implicitintent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        explicitintent = (Button)findViewById(R.id.explicitintent);
        explicitintent.setOnClickListener(this);
        implicitintent = (Button)findViewById(R.id.implicitintent);
        implicitintent.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.explicitintent:
                Intent explicit = new Intent(PageOne.this, PageTwo.class);
                startActivity(explicit);
                break;
            case R.id.implicitintent:
               Intent implicit = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.codepolitan.com"));
                startActivity(implicit);
                break;
            default:
                break;
        }
    }
}
  • Intent dengan Extra

Intent dengan extra atau putExtra() adalah sebuah metode dari Intent yang digunakan untuk mengirimkan data ke activity yang dituju. Data yang akan dikirim pun tipenya dapat bermacam-macam, bisa berbentuk String, angka (integer, float, double), ArrayList, boolean, array, character, dan sebagainya. Namun tidak semua tipe data support untuk dikirim antar Activity, tipe data yang berukuran besar seperti gambar (image bitmap) atau file, tidak dapat dipassing antar Activity melalui metode ini.

MainActivity.java

Berikut baris program untuk MainActivity.java :
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final EditText name = (EditText) findViewById(R.id.edit_textdata);
        Button button = (Button) findViewById(R.id.button_submitintent);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this,Main2Activity.class);
                i.putExtra("name", name.getText().toString());
                startActivity(i);
            }
        });
    }
}

Main2Activity.java

Berikut baris program untuk Main2Activity.java :
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        TextView t = (TextView) findViewById(R.id.text_viewdata);
        Bundle bundle=getIntent().getExtras();
        String s=bundle.getString("name");
        t.setText(s);

    }
}

activity_main.xml

Berikut baris program pada activity_main.xml :
<?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_horizontal"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ini halaman utama Activity 1"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:layout_marginTop="20dp"
        android:id="@+id/edit_textdata"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Data"/>

    <Button
        android:id="@+id/button_submitintent"
        android:text="Intent with extra"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

activity_main2.xml

Berikut baris program pada activity_main2.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ini halaman kedua Activity 2"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:layout_margin="15dp"
        android:id="@+id/text_viewdata"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Data"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

Hasil Output

Explicit Intent
explixit

Hasil Output

Implicit Intent

Hasil Output

Intent dengan Extra
Sumber : 

Rabu, 20 Mei 2020

Pertemuan 4 Komponen Dasar Android (Activity)

KOMPONEN DASAR ANDROID
ACTIVITY

Pengertian Activity

Activity adalah komponen pada aplikasi Android yang menampilkan dan mengatur halaman aplikasi sebagai tempat interaksi antara pengguna dengan aplikasi, seperti membuat panggilan telepon, mengambil foto, mengirim pesan singkat, atau mengirim email. Sebuah Activity mengatur satu halaman user interface aplikasi. Sehingga jika sebuah aplikasi Android memiliki beberapa halaman user interface yang saling berinteraksi, berarti aplikasi tersebut memiliki beberapa Activity yang saling berinteraksi.
Activity merupakan salah satu komponen penting Android yang memiliki daur hidup (life cycle) dalam sebuah stack pada virtual sandbox yang disiapkan oleh Dalvik Virtual Machine (DVM) atau Android Runtime (ART) yang bersifat last in first out
Pada implementasinya, activity selalu memiliki satu layout user interface dalam bentuk berkas xml. Suatu aplikasi. Android bisa memiliki lebih dari satu activity dan harus terdaftar di berkas AndroidManifest.xml sebagai sub aplikasi

Konsep Last In, First Out

Saya coba jelaskan fase-fase di atas beserta contoh implementasinya pada aplikasi Whatsapp. Kita sepakati dulu halaman utama yang berisi list pesan dan grup disebut activity 1 dan halaman pesan disebut activity 2
  1. onCreate () yaitu fase ketika activity pertama kali diciptakan. misalnya ketika user tap icon aplikasi Whatsapp maka onCreate () akan dipanggil dan selalu diikuti dengan onStart ().
  2. onStart () yaitu fase yang dipanggil setelah onCreate (). Fase ini berlangsung cepat, membuat activity menjadi muncul pada layar. Pada fase ini user diarahkan ke tampilan halaman utama aplikasi Whatsapp.
  3. onResume () fase ini merupakan fase ketika user berinteraksi dengan dengan activity yang sedang berjalan. Contohnya ketika user men-scroll halaman utama aplikasi Whatsapp. Jika tiba-tiba ada interupsi masuk seperti saat ada panggilan telepon masuk, maka activity akan beralih ke posisi onPause (). Fase onResume () selalu diikuti onPause ().
  4. onPause () fase ini dipanggil ketika user meninggalkan suatu activity, fase ini berlangsung cepat sampai activity tidak lagi terlihat oleh user ( onStop () ).
  5. onStop () pada fase ini activity benar-benar tidak terlihat dan user tidak dapat berinteraksi dengan activity misalnya ketika berpindah activity. Ambil contoh ketika user di halaman utama Whatsapp (activity 1) kemudian berpindah ke halaman pesan (activity 2) maka activity 1 menjadi tidak terlihat dan activity 2 menjadi terlihat.
  6. onDestroy () pada fase ini activity dihancurkan. Contohnya saat user berada pada activity 2 (halaman pesan) kemudian kembali ke activity 1 (halaman utama) dengan menekan tombol back maka activity 2 (halaman pesan) akan dihancurkan.
  7. onRestart () fase ini terjadi ketika activity yang berada di posisi onStop () dipanggil kembali. Contohnya saat user kembali ke activity 1 (halaman utama) dari activity 2 (halaman pesan) aplikasi whatsapp maka activity 2 diarahkan ke onDestroy () dan activity 1 menuju onRestart (). fase ini selalu diikuti onStart().

Dari penjelasan diatas dapat kita lihat bahwa activity 2 masuk terakhir (last in) sehingga berada di stack teratas. Kemudian ketika user kembali ke activity 1 maka activity 2 menjadi aktivity yang pertama keluar dari stack (first out). Itulah konsep LIFO pada Android activity lifecycle.




1. Gambar 1
Jika Anda memiliki sebuah aplikasi yang terdiri dari 2 activity, maka activity pertama akan dijalankan setelah pengguna meluncurkan aplikasi melalui ikon aplikasi di layar device. Activity yang ada saat ini berada pada posisi activity running setelah melalui beberapa state onCreate ( created ) → onStart started ) → onResume (resumed) dan masuk ke dalam sebuah stack Bila pada activity pertama Anda menekan sebuah tombol untuk menjalankan activity kedua, maka posisi state dari activity pertama berada pada posisi stop . Saat itu, callback onStop() pada activity pertama akan dipanggil. Ini terjadi karena activity pertama sudah tidak berada pada layar foreground / tidak lagi ditampilkan. Semua informasi terakhir pada activity pertama akan disimpan secara otomatis.
Sementara itu , activity kedua masuk ke dalam stack dan menjadi activity terakhir yang masuk.

2. Gambar 2
Activity kedua sudah muncul di layar sekarang. Ketika Anda menekan tombol back pada physical button menu utama atau menjalankan metode finish()finish(), maka activity kedua Anda akan dikeluarkan dari stack Pada kondisi di atas, state activity kedua akan berada pada destroy. Oleh karenanya, metode onDestroy() akan dipanggil. Kejadian keluar dan masuk stack pada proses di atas menandakan sebuah model Last In, First Out Activity kedua menjadi yang terakhir masuk stack Last In ) dan yang paling pertama keluar dari stack First Out

3. Gambar 3
Activity Pertama akan dimunculkan kembali di layar setelah melalui beberapa state dengan rangkaian callback method yang terpanggil, onStop → onRestart → onStart → onResume.

Latihan Sederhana Penggunaan Activity

Tujuan

bertujuan untuk mengimplementasikan komponen activity pada aplikasi pertama yang akan bangun. Harapannya aktifitas ini dapat memberi gambaran yang jelas tentang cara kerja activity.

Logika Dasar

Melakukan input ke dalam obyek TextBox → melakukan validasi input → melakukan perhitungan volume balok ketika tombol hitung diklik maka tampil hasil perhitungan.

Berikut flow umumnya.
1. Ngoding Layout untuk user interface aplikasi
2. Ngoding Activity untuk menambahkan logika aplikasi



1. Silakan klik tab file activity_main.xml pada workspace Anda( res/Layout/activity_main.xml ), dan tambahkan baris baris berikut:


Akan muncul warning pada atribut android:text pada layout tersebut. Ini karena kita melakukan hardcoding pada nilai string nya. Mari kita hilangkan code warning tersebut dengan menekan Alt+Enter pada attribut android:text

Akan muncul dialog seperti ini, pilihlah extract string resource.


Kemudian akan muncul dialog seperti di bawah ini. Sesuaikan dengan nama yang ada.


Fungsi  extract string resource akan secara otomatis menambahkan nilai dari android:text ke dalam berkas res → values → strings.xml . Lakukan hal yang sama pada view lainnya hingga tidak ada warning lagi. 

Jika kita buka berkasstrings.xml , maka isinya akan menjadi seperti ini :
1.<resources>
2.<string name="app_name">BarVolume</string>
3.<string name="lebar">Lebar</string>
4.<string name="tinggi">Tinggi</string>
5.<string name="hitung">Hitung</string>
6.<string name="hasil">Hasil</string>
7.<string name="panjang">panjang</string>
8.</resources>

Jika terjadi kesalahan pada atribut dimens , maka kita perlu menambahkan berkas dimens.xml di
dalam res → values → dimens.xml . Kesalahan ini disebabkan karena pada Android Studio 2.3, berkas dimens.xml sudah tidak dibuat secara otomatis. 

Langsung saja tambahkan dengan cara Klik Kanan pada directory res . Akan muncul dialog seperti ini.


Kemudian isi sesuai di bawah ini.


Jika berkas dimens.xml sudah dibuat, sesuaikan isinya menjadi seperti berikut.

1.<resources>
2. <!--Default screen margins, per the Android Design guidelines.-->
3.<dimen name="activity_horizontal_margin">16dp</dimen>
4.<dimen name="activity_vertical_margin">16dp</dimen>
5.</resources>

Menambahkan Kode Logika Sederhana pada MainActivity

Selanjutnya setelah selesai, lanjutkan dengan membuka berkas MainActivity.java dan lanjutkan ngoding baris baris dibawah ini.

Jika terdapat baris merah seperti ini :


Jangan khawatir! Silakan klik di atas baris merah tersebut dan klik pada ikon bola lampu Atau dengan tekan tombol Alt + Enter lalu pilih implements method

Setelah selesai, silakan jalankan aplikasi dengan memilih menu Run → Run ‘app’ dari menu bar.


Pertemuan 3 KONSEP RUNNING APPLICATION Emulator dan Device

KONSEP RUNNING APPLICATION
Emulator dan Device


Running Apps di Emulator dan Device

Menjalankan App di Emulator harus memperhatikan beberapa
aspek

• Cek Aspek Virtualization

Virtualization merupakan sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara system lain aplikasi atau pengguna berinteraksi dengan sumber daya tersebut Hal ini termasuk membuat sebuah sumber daya tunggal seperti server sebuah sistem operasi sebuah aplikasi atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal
Pastikan aspek virtualization yaitu prosessor dan sistem operasi dari laptop/PC yang digunakan

1. Cek Aspek virtualization

  • Processor

Prosesor Intel :

Jika laptop/pc Anda menggunakan prosesor Intel, maka pastikan ia mendukung Intel VT-x, Intel EM64T (Intel 64), dan Execute Disable (XD) Bit functionality.

Prosesor AMD :

Jika laptop/pc Anda menggunakan AMD, maka pastikan bahwa Laptop/PC support dengan AMD Virtualization (AMD V) dan Supplemental Streaming SIMD Extensions 3 (SSSE3).

  • Sistem Operasi

Intel :

Jika menggunakan processor Intel maka Anda dapat menjalankannya di sistem operasi Windows, Linux, maupun Mac

AMD :
Untuk prosesor AMD maka hanya bisa menjalankannya di sistem operasi Linux.


• Persiapan Running menggunakan Emulator dan Device

2. Instal Hardware Accelerated Execution Manager (HAXM) Khusus pengguna WINDOWS atau    MAC

HAXM hardware assisted virtualization engine yang menggunakan teknologi VT dari Intel untuk mempercepat aplikasi Android yang diemulasi di mesin host.

HAXM diperlukan untuk menjalankan emulator di Android Studio.
Langkah2 Menginstal HAXM
1. Buka SDK Manager
2. Pilih SDK Update Sites, kemudian hidupkan Intel HAXM
3. Tekan OK
4. Cari berkas installer nya di directory folder sdk komputer anda,
~sdk extras intel Hardware_Accelerated_Execution_Manager intel haxm android exe
5. Jalankan installer dan ikuti petunjuknya sampai selesai

• Persiapan Running menggunakan Emulator dan Device

Pengguna Linux

Sistem operasi Linux dapat support accelerated virtual machine dengan menggunakan KVM
Untuk instal KVM, Anda bisa menggunakan perintah berikut ini

$ sudo apt get install qemu kvm libvirt bin ubuntu vm builder
bridge utils ia 32 libs multiarch

Selengkapnya dapat Anda baca pada halaman ini :

https
:://developer android com/studio/run/emulator html
https
:://developer android com/studio/run/emulator acceleration html
Menginstal Kernel
based Virtual Machine (KVM)

Kelebihan Menggunakan Device ( Smartphone) daripada Emulator

Saat kita melakukan pemrograman android, Running program selalu dilakukan di emulator.”Bisa ga kalau langsung di test dismartphone lewat USB kabel?”. Jawaban singkatnya bisa.
Apa sih kelebihan menggunakan real device ketimbang emulator? Ada dua yaitu:
  1. Memastikan bahwa aplikasi bisa berjalan di real hardware.
  2. Loading lebih cepat saat testing tanpa  memakan memori dan Prosesor Komputer.
Beberapa kelebihan Real Device jika dibandingkan dengan emulator yaitu :

  • Lebih cepat
  • Fitur seperti geo location, push notif bisa digunakan;
  • Bisa mengetahui daya serap baterai terhadap aplikasi.
  • Lebih mudah dan dapat memastikan aplikasi berjalan di pengguna.  

Running Project Aplikasi Android Studio dengan Device dan Emulator  

Saya akan mencoba mengulas bagaimana kita running project aplikasi yang telah kita buat. Bagi yang sudah pernah mengembangkan sebuah software maka sudah tidak asing dengan proses running ini. Namun pada pengembangan aplikasi Android ini terdapat pilihan, apakah anda akan mencoba running project aplikasi anda pada perangkat Android anda langsung atau ingin running pada Emulator.
  • Running dengan device
Untuk menjalankan menggunakan perangkat smartphone kita langsung hal yang pertama dilakukan adalah menghubungkan antara komputer dan perangkat kita menggunakan kabel usb.

Dalam menghubungkan disini anda perlu mengaktifkan “USB Debugging” pada device kita. Pengaturannya ada pada “Settings” kemudian “Developer Options”.

Developer Options
USB Debugging
Apabila anda menggunakan device baru dengan sistem Android 4.0 keatas, kemungkinan besar menu “Developer Options” tidak akan muncul. Untuk memunculkannya anda hanya perlu buka menu “Settings” kemudian “About Device” dan tab “Build Number” sebanyak 7 kali.
About Device
Build Number
Sekarang coba anda klik running pada toolbar Android Studio, apabila device kita sudah terbaca maka anda dapat langsung memilih dan menjalankan project aplikasi. Untuk pengguna os Linux mungkin device anda dapat langsung terdeteksi, namun apabila anda pengguna os Windows mungkin device anda tidak dapat langsung terdeteksi.
Bagi anda pengguna windows, agar device anda dapat terdeteksi maka anda harus install aplikasi tambahan yang dapat mendeteksi device anda. Aplikasi tambahan tersebut sesuai dengan vendor smartphone yang anda gunakan. Berikut beberapa aplikasi yang dapat anda gunakan:
Setelah anda install aplikasi tambahan tersebut silah coba restart dan klik running. Beberapa aplikasi tambahan lain dapat anda cari langsung biasanya dengan mengunjungi situs resmi dari vendor device anda masing-masing
  • Running dengan emulator
Emulator adalah sebuah perangkat lunak yang digunakan untuk mensimulasikan, misal kita dapat seolah-olah menggunakan perangkat Android Samsung S5 pada laptop kita secara virtual. Ada juga beberapa aplikasi tambahan yang meyediakan emulator, diantarnya yang cukup terkenal adalah Genymotion silahkan cek disini. Anda hanya perlu melakukan instalasi dan android studio akan mendeteksi secara otomatis bila emulator anda sudah jadi.

Namun pada dasarnya Android Studio sendiri sudah menyediakan emulator, ada hanya perlu melakukan konfigurasi sesuai kebutuhan. Untuk membuat emulator silahkan lakukan tutorial berikut:

- Buka Menu “Tools” kemudian “Android” dan pilih “AVD Manager”

- Untuk anda yang belum memiliki emulator maka akan muncul dialog dan klik “Create Virtual Device”

- Setelah itu anda harus memilih hardware dari device yang akan menjadi emulator anda

- Kemudian anda memilih os dari device yang akan digunakan. Disini saya memilih API Level 15, maksudnya untuk tidak memilih device yang terlalu terbaru agar kita tahu apakah project kita ketika digunakan pada device lama terjadi kesalahan atau tidak

- Tunggu proses download selesai lalu anda akan disuguhi konfigurasi untuk emulator anda, lalu klik Next

- Kemudian klik Finish

Untuk menjalankan silahkan klik tombol run lagi dan jika berhasil nama emulator anda akan muncul. Demikian ulasan singkat tentang bagimana kita dapat running project aplikasi yang telah kita buat. Pilihan sepenuhnya ada ditangan anda. Namun menurut saya sebaiknya kita bijak dalam memilih. Apabila kita hanya memiliki spesifikasi komputer yang tidak terlalu tinggi sebaiknya gunakan device untuk running project. Sedangkan apabila spesifikasi komputer kita sudah cukup mumpuni, alangkah lebih mudah menggunakan emulator. Selain itu sebaiknya anda jangan terlalu memaksakan, apabila dengan spesifikasi komputer yang minimal dan anda memaksa menggunakan emulator maka yang terjadi hanya akan memakan waktu debugging yang semakin lama. Semoga ulasan singkat ini dapat bermanfaat, terima kasih.

Sumber Referensi :

https://idncoding.blogspot.com/2016/09/running-project-aplikasi-android-studio.html

Komponen Android Service

Komponen Android Service Pengertian Service Sebelumnya telah belajar mengenai activity dan implementasinya. Activity adalah kom...