Thursday, April 17, 2014

Membuat Statusbar & Navibar Jellybean gradient ala Kitkat

  Pengen punya gadget kitkat tapi kantong cekak? nih ada solusinya buat yang pengen statusbar & navbar hh jelly bean ente menjadi bergradien ala Kitkat!

PERSYARATAN : ANDA HARUS TAHU CARA DECOMPILE & COMPILE APK DAN FILES JAR, DAN JUGA MEMODIFIKASI SMALI KODE, DWYOR! (untuk tutor Decompile & compile insyaallah akan ane share pada post berikutnya) untuk memodifikasinya, bisa menggunakan Notepad++.


Lets Begin....

* hapus yang berwarna warna merah
* tambahkan yang berwarna biru 

Ambil file  android.policy.jar dari System/framework.
systemUI.apk dari system/app.


1
. menambahkan trancluent pada navbar & status bar.

      1. Decompile android.policy.jar \ com \ android \ internal \ policy \ impl \ PhoneWindowManager.smali

Cari : 
.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
    .locals 1
    .parameter "systemRect"

    .prologue
    .line 2755
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemLeft:I

    iput v0, p1, Landroid/graphics/Rect;->left:I

    .line 2756
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemTop:I

    iput v0, p1, Landroid/graphics/Rect;->top:I

    .line 2757
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemRight:I

    iput v0, p1, Landroid/graphics/Rect;->right:I

    .line 2758
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I

    iput v0, p1, Landroid/graphics/Rect;->bottom:I

    .line 2759
    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;

    if-eqz v0, :cond_0

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;

    invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I

    move-result v0

    .line 2761
    :goto_0
    return v0

    .line 2760
    :cond_0
    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;

    if-eqz v0, :cond_1

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;

    invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I

    move-result v0

    goto :goto_0

    .line 2761
    :cond_1
    const/4 v0, 0x0

    goto :goto_0
.end method


- Ganti dengan : 


     const/4 v0, 0x0

     return v0
.end method

Selesai, Compile.

       2. Decompile SystemUI.apk \ com \ android \ systemui \ statusbar \ phone \ PhoneStatusBar.smali

Cari: 
.method private getNavigationBarLayoutParams()Landroid/view/WindowManager$LayoutParams;
    .locals 6

    .prologue
    const/4 v1, -0x1

    .line 792
    new-instance v0, Landroid/view/WindowManager$LayoutParams;

    const/16 v3, 0x7e3

    const v4, 0x840068

    const/4 v5, -0x3

    move v2, v1

    move v5, v1

    invoke-direct/range {v0 .. v5}, Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V

    .line 803
    invoke-static {}, Landroid/app/ActivityManager;->isHighEndGfx()Z

    move-result v1

    if-eqz v1, :cond_0

    .line 804
    iget v1, v0, Landroid/view/WindowManager$LayoutParams;->flags:I

    const/high16 v2, 0x100

    or-int/2addr v1, v2

    iput v1, v0, Landroid/view/WindowManager$LayoutParams;->flags:I

    .line 807
    :cond_0
    const-string v1, "NavigationBar"

    invoke-virtual {v0, v1}, Landroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V

    .line 808
    const/4 v1, 0x0

    iput v1, v0, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I

    .line 809
    return-object v0
.end method


2. Mengedit Statusbar & Navbar backgrond :

SystemUI.apk \ res \ layout \ navigation_bar.xml
SystemUI.apk \ res \ layout-sw600dp \ navigation_bar.xml

Code:

android:background="#88000000" 

Code:

android:background="@drawable/nav_bar_background"
SystemUI.apk \ res \ values \ drawables.xml


Code:
<item type="drawable" name="status_bar_background">#88000000</item>
SystemUI.apk \ res \ layout \ status_bar.xml
Code:
android:background="#FF000000"
Code:
android:background="@drawable/status_bar_background"
3. Gradien status & navbar


buat 2 XML baru :

di SystemUI \ res \ drawable

[status_bar_background.xml]
Code:
<?xml version="1.0" encoding="utf-8"?>
<shape
  xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient android:startColor="#00000000" android:endColor="#99000000" android:angle="@integer/status_bar_bg_gradient_degrees" name="status_bar_background" />
</shape>
[nav_bar_background.xml]
Code:
<?xml version="1.0" encoding="utf-8"?>
<shape
  xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient android:startColor="#cc000000" android:endColor="#00000000" android:angle="@integer/nav_bar_bg_gradient_degrees" name="nav_bar_background" />
</shape>
Tambahkan ke integers (SystemUI.apk \ res \ values \ integers)
Code:
<integer name="nav_bar_bg_gradient_degrees">90</integer>
<integer name="status_bar_bg_gradient_degrees">90</integer>

SELESAI, Compile kembali. dan taruh kembali jar dan apk yang telah di compile ke foldernya masing masig.

HASILNYA  : 

 Semoga berhasil, Jika masih ada yang bingung silahkan komentar dibawah. Do With Your Own Risk ! Happy Opreking! :D

Sumber : http://forum.xda-developers.com/galaxy-nexus/general/guide-kitkat-gradient-status-nav-bars-t2504373

Wednesday, April 16, 2014

Torrent itu apa sih?

Aplikasi client torrent, Utorrent.

            Torrent itu apa sih? torrent adalah alternatif buat download file berukuran besar (misalnya game, software, movie, dll) melalui internet yang Berbasiskan peer 2 peer gan ( pc ke pc ). File yang ingin di download bakal di pecah pecah jadi partisi kecil, sehingga bisa di unduh secara cepat. 

Torrent mempunyai sistem "Seeder dan leecher". Seeder adalah mereka yang sudah selesai mendownload 100% dan Leecher adalah orang yang belum selesai mendownload dan sedang mendownload, gampangnya, si seeder ngasih file kepada leecher, jadi kita mendownload langsung kepada yang punya file tersebut, tanpa perantara server kaya kita ngedownload pake http biasa.

            Cara makenya gimana? Pertama, ente harus punya aplikasi client torrentnya, bisa pakai BitTorrent atau Utorrent (ane pribadi sih make utorrent), kalau  udah punya, lalu download file .torrent ( File ini berisi informasi yang dibutuhkan untuk men-download file tertentu ) di site penyedia torrent (bisa di torrenz.eu, the pirate bay, isohunt, dll). Tinggal pilih file torrent yang akan di download lalu Utorrent secara otomatis akan mendownloadnya

dari site penyedia torrent tadi, biasanya tertulis jumlah Seeder dan leecher, jika seedernya sedikit, kemungkinan besar speed downloadnya bakal lambat, apalagi kalau seednya gak ada, file tersebut ga bisa akan download. 
  
    
Perhatikan jumlah seedernya, usahakan jumlah seedernya banyak


              Keuntungan memakai torrent apa aja sih? 
  1. Resumable, download dapat di pause dan Akan mempause download ketika komputer mati dan melanjutkan kembali secara otomatis ketika komputer nyala.
  2. Akan mempause download ketika komputer mati dan melanjutkan kembali secara otomatis ketika komputer nyala.
  3. mudah ketika mendownload file berukuran besar dan banyak  
  4. jika file lebih dari satu, ente dapat memiih yang mana yang akan di unduh. 
  5. File bukan dari server seperti mediafire atau host lainnya, melainkan berasal dari user yang sedang online menggunakan torrent client. ini membuat  ketersediaan file menjadi lebih ada 


Mungkin segitu aja dulu bro,kalau masih belum jelas bisa ditanyakan di komentar :)
Thank's for visit, and happy downloading :D