วันอังคารที่ 20 มีนาคม พ.ศ. 2555

Android Rom :: Unroot

สวัสดีครับ ผมpureexe
วันนี้เป็นตอนพิเศษนะครับเนื่องจากมีคนขอมา
วันนี้เราจะมา Unroot เครื่องเรากัน


ลิ้ง สำหรับ download ไฟล์ zip (ใช้install ผ่าน SD card)
http://www.mediafire.com/?y6airjj1aba9h6m

code ด้านใน(ไฟล์ updater-script)


ui_print("Unrooting, Please wait...");
mount("/system");
delete("/system/xbin/sqlite3");
delete("/system/xbin/su");
delete("/system/xbin/busybox");
delete("/system/bin/bash");
delete("/system/app/Superuser.apk");
unmount("/system");
ui_print(" ");
ui_print("Please reboot your phone.");


อธิบายcode
ui_print(""); คือแสดงคำพูด

mount("/system"); คือ ทำให้ /system เป็น r/w (เขียนข้อมูลได้)

delete("/system/xbin/sqlite3"); ลบตัว SQLlite (ถ้าโดนเจอทำให้หมดประกัันได้)
delete("/system/xbin/su"); ลบไฟล์ lib ของ superuser
delete("/system/xbin/busybox"); ลบไฟล์lib ของ busybox
delete("/system/bin/bash"); ลบไฟล์lib ของ busybox
delete("/system/app/Superuser.apk"); ลบไฟล์ superuser
unmount("/system"); ทำให้ /system กับมาเป็น r/o (อ่านอย่างเดียว)

ก็ขอจบตอนแค่นี้นะครับขอให้สนุก ^^


วันอังคารที่ 6 มีนาคม พ.ศ. 2555

Android App :: Button กดแล้วเปลี่ยนหน้า?

สวัสดีครับผม pureexe
ในตอนนี้เราก็จะเขียน app android นะครับ
เคยสงสัยไหมว่า app android ที่มีปุ่มกด กดแล้วมันเปลี่ยนหน้า(เปลี่ยนfream) เขาทำยังไงมาดูกัน
1.สร้าง project android
ต่อมาเราก็คลิกขวาที่ folder layout >new >android XML
จากนั้นจะเจอหน้าต่าง ให้เลือก resouce type :: layout แล้วพิมพ์ชื่อไฟล์ (ผมสมมุติว่าชื่อ process)
ใน folder layout จะมีอีกไฟล์โผล่ขึ้นมาแต่งตามใจชอบเลยครับ ^^
สมมุติว่าแต่งแล้วกัน - -*

กลับไปหน้า main สร้างปุ่มมาปุ่ม 1

ตั้งpropertiesของปุ่มตรงOn Clickตั้งอะไรก็ได้ สมมุติผมตั้งว่า nextpage


กลับไป/scr/ชื่อpackage/ชื่อactivity เหนือคำว่า @override พิมพ์ว่า
setContentView(R.layout.ชื่อของเพจที่จะไป
}
ถ้าขึ้นกากบาทกับหลอดไฟด้านหน้าให้คลิกที่มันแล้วเลือก import view

มาทดสอบเลย ผมต่อมือถือแล้วกดรัน
เจออย่างงี้
กดปุ่มแล้วก็
public void ชื่อที่ตั้งตรง onclick (View v){);

วันจันทร์ที่ 5 มีนาคม พ.ศ. 2555

Android App :: EditText&TextView

นี่ก็เป็นตอนที่4 แล้วนะครับที่สอนเขียน app android
ซึ่งขอตัดข้าม Android Rom ไปก่อนนะครับผู้อ่านจะได้ไม่มึนรอให้ผมไม่อะไรจะพิมพ์ก่อนแล้วค่อยตัดเข้าเรื่อง Android Rom
วันนี้นะครับเราจะทำโปรแกรมหน้าตาประมาณนี้
ตอนแรกเข้าapp มา

จากนั้นพอเราพิมพ์ชื่อลงไปแล้วกดsubmit

อย่างงครับมาดูวิธีทำเลยดีกว่า
1.สร้าง android projectแบบตอนที่แล้ว
ต่อไปเปิด /res/layout/main.xmlขึ้นมา ด้านล่างกด graphic layout จะเป็นดังนี้

***อย่าลืมตั้งค่าจอให้ตรงกับเครื่องท่านด้วย***

ต่อไปเราก็ลากคำว่า Largeมาวางถ้าเครื่องท่านมีอะไรรออยู่ก่อนแล้ว(เช่นคำว่าhelloworld)ลบทิ้งไปก่อน
เสร็จแล้วให้กดที่มุมล่างซ้ายเลือก other เลือก properties เพื่อโชว์แถบ properties

จากนั้นจะมีแถบpropertiesขึ้นมาคลิกเลือกที่คำว่าLarge แล้วแก้ได้เลย

วิธีจัดรูปแบบ คลิกที่วัตถุแล้วเลือก properties
อธิบาย
Layout gravity :: จัดตำแหน่ง
Layout height :: จำกัดความสูงวัตถุ
Layout margin :: เว้นระยะ
Layout margin bottom left right top:: เว้นระยะวัตถุกับวัตถุข้างเคียง(หน่วยเป็นpx ต้องพิมพิ์หน่วยตามด้วยเช่น20px)
Layout width :: จำกัดความกว้างวัตถุ

จากนั้นนะครับให้ลาก edittext button และ textview(อันที่ใช้แสดงผล)
ลากๆๆ จัดรูปแบบให้เป็นตามนี้(ไม่เหมือนก็ได้)
จากนั้นนะครับคลิกที่ editinput เลือกproperties(ด้านข้าง)แล้วไปตรงช่องId ตั้งเป็นId @+id/edituser
ตั้งId ปุ่ม submit เป็น Id @+id/button
ตั้ง Large Text ตัวล่าง Idเป็น Id @+id/txtanswer
ตั้ง On Click (อยู่ในproperties) ของปุ่ม submit โดยกรอกคำว่า outputลงไป


เปิด /src/ชื่อpackage/ชื่อactivity แล้วใส่ code ตามนี้
package
ชื่อpackage;
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.EditText;
import
 
public
String name=
}
class ชื่อactivity extends Activity {private EditText editinput;private TextView textans;public void output (View v){editinput.getText().toString();textans.setText("Hello "+name);@Override
setContentView(R.layout.
}
}

อธิบาย

ข้ามมาอธิบายใต้class เลยนะครับเพื่อความเร็วถ้ายังไม่รู้กลับอ่าน Android App :: Helloworld

private EditText editinput;
ประมาณว่าให้ตัวแปรชื่อ editinput เป็น pointer เพื่อชี้ โดยชี้ไปยัง EditText

private TextView textans;
ประมาณว่าให้ตัวแปรชื่อ textans เป็น pointer เพื่อชี้ โดยชี้ไปยัง TextView

public void output (View v)
เข้าfunctionน output ส่วน (View v)ผมไม่รู้ไว้ทำอะไรแต่ไม่ใส่แล้วforceclose

String name=editinput.getText().toString();
ให้ตัวแปรname เก็บค่าที่รับมาจาก editinput

textans.setText("Hello "+name);
ให้textans เซ็ทตัวหนังสือเป็น คำว่า Hello + ตัวแปร name

ตัดมาใน function OnCreate เลยนะครับ ถ้าอยากรู้มันไว้ทำอะไรกลับไปบท Android App :: Hello

setContentView(R.layout.main); 
สั่งให้โชว์ /res/layout/main.xml
editinput=(EditText)findViewById(R.id.edituser);
ให้ตัวpointer editinput ชี้ไปยังสิ่งที่มีId เป็นedit user

textans=(TextView)findViewById(R.id.txtanswer);
ให้ตัวpointer textans ชี้ไปยังสิ่งที่มีId เป็นtxtanswer

textans.setText(" ");
ทำให้สิ่งที่ถูกtextansชี้(txtanswer)โชว์ตัวอักษร space bar

อาจจะยากต้องพยายามนะ

บทต่อไป ยังไม่ได้คิด = ="
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);main);editinput=(EditText)findViewById(R.id.edituser);textans=(TextView)findViewById(R.id.txtanswer);textans.setText(" ");
android.widget.TextView;

Android App :: Helloworld

วันนี้ครับผมจะมาสอนเขียนapp android
ไม่สิเรียกว่าแนะนำก่อนดีกว่า
สำหรับคนที่พึ่งมาอ่านใหม่ให้กลับไปอ่าน Android App :: Introduced

ก่อนอื่นเราเปิด eclipse ขึ้นมาก่อนเลยนะครับ เปิดแล้วเลือก File>new>other จะเจอหน้าต่างnew เด้งขึ้นมาเลือก Android >Android Project ตามรูป
จากนั้นเลือก มันจะให้เลือกชื่อproject ให้ตั้งอะไรก็ได้นะครับอย่างผมตั้งว่า Helloworld
จากนั้นจะเป็นการเลือก API นะครับแนะนำให้เลือก android 2.3.3 หรือใหม่กว่า
ต่อไปจะให้ตั้งapp info นะครับก็ตั้งไป
***package name ให้ตั้งเป็น โดเมน.ชื่อคุณ.ชื่อapp
โดยผมจะใช้ th.pureexe.helloworld เพราะผมเป็นคนไทยชื่อแฝงpureexe appชื่อhelloworld
คุณอาจจะตั้งว่า org.sumalee.helloworld เพราะคุณไม่แสวงหากำไร ใช้ชื่อสุมาลี appชื่อhelloworkd
จากนั้นรอgennerate code สักครู่ให้คุณต่อมือถือคุณรอได้เลย(ถ้าใช้ AHD ก็นั่งรอไป)
พอเสร็จกด ctrl+F11 เลยจะพบหน้าต่างRun as เลือก android application

กด Ok ไปดูที่มือถือจะพบกับ helloworld
บางคนคิดในใจ "จบและ? ได้ความรู้อะไร?"
เราจะเริ่มเข้าสู่ส่วน coding กันแล้วนะครับ
เข้าeclipse เลือก projectเมื่อกี่เลือก /src/ชื่อpackageคุณ/ชื่อactivityของคุณ

จะเห็นcodeตามนี้(ใช้syntaxเดียวกับ C/java ต้องมี;ปิดท้าย)

th.pureexe.helloworld;
import
android.app.Activity;
import
android.os.Bundle;
public
class HelloworldActivity extends Activity {/** Called when the activity is first created. */
@Override
setContentView(R.layout.
}
}
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);main);

มาดูcodeนะครับ
บรรทัดแรก
package th.pureexe.helloworld;
ชื่อpackage ไม่มีอะไร...

บรรทัดที่2-3
import
import android.os.Bundle; เป็นการเรียก standard lib มาเฉยๆ ถ้าไม่เรียกมาเราจะใช้บางคำสั่งไม่ได้

public void onCreate(Bundle savedInstanceState) 
ประกาศใช้งานclass (Classนี้จะถูกเรียกเมื่อเปิดโปรแกรมทันที)

public class HelloworldActivity extends Activity {
เป็นfunction(จะให้ถูกต้องเรียก method แต่ขอเรียก Functionแล้วกันนะครับ)ที่ถูกเรียกตอนเปิดโปรแกรม พวกตัวแปรที่ใช้ระบุตำแหน่ง(คล้ายๆpointer)จะถูกประกาศ ณ Function นี้
setContentView(R.layout.main);
คำสั่งนี้คือให้เปิดไฟล์ main.xmlใน /res/layout/main.xml มาโชว์

จะสังเกตว่าไม่มีคำว่าhelloworld สักนิดเดียว เกิดอะไรขึ้น?? เราต้องมาสืบจากศพกัน
เบาะแสที่มีคือ

setContentView(R.layout.main);
ฉนั้นมองไปซ้ายเลือก/res/layout/main.xml

เข้าไปแล้วเราจะพบกับส่วนออกแบบ UI นั้นเอง เล่นได้ตามสนุกเลยครับ ^^

*** Note *** ตั้งค่าหน้าจอให้เหมาะกับตัวเองด้วยนะครับ

จบตอน

ตอนหน้าพบกับ Android App :: Editbox &TextView
ระหว่างนี้อาจจะตัดไปทำ Android Rom :: Introduced ก่อนก็ติดตามอ่านเอานะครับ
android.app.Activity;

package

Android App :: SDK Introduced

ยังไม่ได้อ่านการลงโปรแกรมที่ต้องใช้กลับไปอ่าน Android App :: Introduced นะครับ

หลังจาก เราติดตั้งห้องLab (โปรแกรมต่างๆ) เราก็จะมาเยี่ยมชมห้องLab ของเรากันนะครับ

เริ่มจากเปิด Eclipse ขึ้นมา


นี่คือโปรแกรมที่จะมาช่วยเรานะครับ

ตัวต่อไปที่จะมาช่วยเราคือ ADB นะครับ เข้าไป folderที่ลง android-sdkในfolder platfrom-tools จะมีตัว ADBอยู่ หน้าตา ADB ครับ
ADB = ANDROID DEBUG BRID

นอกจากนี้ยังมี พวก 9patch ddms ฯลฯ ทว่าทุกอย่างที่ต้องใช้ในชุด SDK หมดแล้ว

ขอตัดจบตอนนี้เลยแล้วกันนะ
ตอนหน้าเราจะมาเริ่มสร้างกันเลย แล้วพบกับตอนหน้า Android App :: Helloworld

Android App :: Introduced

สวัสดีครับ ผม pureexe ครับ
ก่อนอื่นเรามารู้จักกับ android ก่อนเลย
โดย android เป็น OS ที่พัฒนาโดย Google นะครับ ซึ่งวันที่เขียนบทความนี้อยู่ที่รุ่น 4.00
แต่ทว่าต่อไปที่เราจะสาธิต ผมจะสาธิตใน 2.3.3 เพราะว่าเครื่องผมมันใช้ได้แค่นั้น 555+

เข้าเรื่องเลยแล้วกัน มาเตรียมอุปกรณ์กันก่อน
1. คอมพิวเตอร์ (OS อะไรก็ได้แต่ผมจะใช้ windows XP นะครับ)
2. Android device 1 เครื่อง ถ้าไม่มีก็ใช้ AHD แทนนะครับ
3.ชุดJDK (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
4.ชุด android sdk (http://developer.android.com/sdk/index.html)
5.eclipse (www.eclipse.org/downloads/)

Android Device ที่ผมใช้นะครับจะเป็น Samsung Galaxy Gio
ข้อมูล นิดหน่อย

ให้ลงลำดับ 3-5 นะครับ
พอลงเสร็จให้เปิด ตัว android sdk manager ขึ้นมาแล้วเลือกโหลดpackage รุ่นที่ท่านจะใช้ (กรุณาใช้ 2.3.3 หรือใหม่กว่า) เลือกตามรูปเลยนะครับ


เลือก google USB driver package เพิ่มด้วยนะครับสำหรับคนที่จะทดสอบกับเครื่อง
(คนที่ทดสอบโปรแกรมกับ AHD ไม่ต้องเลือก)

พอโหลดเสร็จแล้วนะครับให้เปิด eclipse เพื่อลงADT plugin..
เปิดมันขึ้นมา มันจะถามworkspace ก่อนแนะนำให้เลือกที่ๆจำง่ายๆ เพราะเราต้องเปิดfolderนั้นบ่อยอย่างผมเลือก D:\android\app

จากนั้นเราก็ลงADT plugin โดยเลือก help>install new software
จากนั้นเลือก add กรอกชื่อ android แล้วไฟล์ก็ https://dl-ssl.google.com/android/eclipse/ แล้วกด OK
จากนั้นเลือก Developer Tool

กด Next >Accerpt >Finish (ช่วงนี้ไม่มีรูป)


จบตอน Android App :: Introduced  แล้วนะครับ ตอนหน้าจะเป็น Android App :: SDK Introduced นะครับ เราจะแนะนำห้องLabที่ท่านต้องใช้เขียน app

Blog :: Introduce

สวัสดีครับ
ผม pureexe ครับ
ผมมสร้าง blog นี้ขึ้นมาเพื่อเผยแพร่ความรู้ด้านการเขียนโปรแกรมให้กับผู้ที่ต้องการแสวงหาความรู้
เพื่อจะได้เป็ยวิทยาธาร (เอาบุญ = =")
โดยเนื้อหาใน blog นี้จะครอบคลุมถึง
ภาษาต่างๆดังนี้
-c
-html
-php&sql
-java(webscript/android)
-autoit (แทน VisualBasic เนื่องจากง่ายกว่า)
พิเศษสอนทำรอม android
แต่เนื้อหาทั้งหมดนี้คงต้องทยอยทำเรื่อยๆนะครับ ซึ่งอาจใช้เวลาเป็นปี