จากครั้งก่อนๆ ที่ cap ภาพ ของ out/ ที่ได้จาก compile แล้วก็ไม่รู้จะเอาไปทำอะไรต่อ ลองไปถาม @nuuneoi ดูเค้าก็บอกว่าให้เอาผลที่ออกมาได้ไปแทน .img ใน emulator ดูเลยก็เลยไปเปิดดู sdk ดูแล้วก็เจออะไรบางอย่างดังรูปพวกนี้ ซึ่งเดี๋ยวจะเอามันมาลองทับกันดู จะผิดจะมั่วเดี๋ยวคงได้รู้กัน :P
ผู้สนับสนุน
วันศุกร์ที่ ๒๙ พฤษภาคม พ.ศ. ๒๕๕๒
Android note
ทดสอบ twitterfeed
เนื่องจากอยากให้ blog ของเรา update ผ่าน twitter ได้บ้าง วันนี้เลยลอง tweet ถามไปใน twitter นั่นแหละก็มี @thangman22 กับ @medkung ตอบมาว่า ลอง twitterfeed สิ ซึ่งผมก็ไม่รู้ว่ามันทำงานยังไงแล้วจะทดสอบยังไง นอกจาก ลอง blog ดูละกัน อิอิ
วันพฤหัสบดีที่ ๒๘ พฤษภาคม พ.ศ. ๒๕๕๒
Compiling android ๓
เค้าบอกว่าให้ Using Eclipse โอเคย์จัดไปตามเค้าว่าครับ
Basic setup
ขั้นแรกเค้าบอกว่าเรา set up Android devlopment system เรียบร้อยแล้วหรือยัง?
cd /path/to/android/root
make # and wait a while, if you haven't done this
อันที่ว่า /path/to/android/root อันนี้ก็น่าจะเป็น directory เดียวกับที่เรา get source มานั่นแหละครับ
[สำหรับใครที่ make แล้วไม่ต้องทำอีกรอบนะครับ มันนานมากๆ ]
สำคัญมั่กๆ ยังไงคุณก็ยังต้องใช้ make เพื่อ build ไฟล์ที่คุณจะเอาไปรันบน emulator หรือเครื่องจริง. ที่คุณใช้ eclipse เพื่อแก้ไขไฟล์ และทดสอบว่ามัน compile ได้ แต่เมื่อคุณต้องการที่จะเอามันไปใช้ คุณต้องดูให้แน่ใจว่าไฟล์ ได้ถูก save ใน eclipse แล้ว และต้องมารัน make ใน shell อีกรอบ เพราะการ build ของ eclipse นั้นทำไปเพื่อตรวจสอบ error เท่านั้น
cd /path/to/android/root
cp development/ide/eclipse/.classpath .
chmod u+w .classpath # ทำให้ตัว copy นี้สามารถเขียนได้
แล้วก็แก้ไขไฟล์ .classpath ถ้าจำเป็น (สำหรับคนที่ไม่รู้ว่าจำเป็นหรือเปล่าอย่างผม ..ข้ามโล้ดอย่าไปยุ่งอะไรกับมัน -_-)
Increase Eclipse's Memory Settings
ต่อไปเพิ่มพลังให้ eclipse เด๋วม่อง (Increase Eclipse's Memory Settings)
Android project ทำให้เครื่องคุณม่องได้สบาย [java ก็เยอะแล้ว eclipse ด้วย android อีก ไม่รอดแน่ๆ JVM มันจะ run out of memory ได้ง่ายๆ] เพื่อป้องกันปัญหาดังกล่าวให้ เราแก้ไข eclipse.ini ซึ่งมันจะอยู่ใน directory eclipse ที่เราลง อันนี้ของใครของมันนะ ของ Mac เค้าบอกมาด้วยว่าอยู่ที่ /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini เปิดไฟล์ขึ้นมาแก้ไขเลยครับ
ของเดิม
-Xms40m
-Xmx256m
-XX:MaxPermSize=256m
แนะนำสำหรับโปรเจค android
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
คือ set ให้ eclipse มี Java heap size ต่ำสุดเป็น 128MB และเพิ่มสูงสุดเป็น 512MB และให้ maximum permanent generation เป็นเหมือนเดิม
เสร็จแล้วก็เปิด eclipse ^^
eclipse &
หรือจะด้วยการเข้าไป click หรืออะไรก็แล้วแต่ 1 2
ถ้าเป็นการพบกับ Eclipse ครั้งแรกของคุณ
- มันจะถามหา workspace เลือกเป็น default เลยก็ดี
- เจอ welcome screen สวัสดีมันแล้วปิดมัน มันจะเข้าสู่หน้าจอ Java perspective.
- File > New > Java Project
- เลือกชื่อ Project อะไรซักอย่างที่คุณต้องการเช่น myandroid
- เลือกที่ Create project from existing source แล้วใส่ path ไปยัง directory ของ android
- รอจนมัน import project เสร็จตรงมุมขวาล่างจะมี progress อยู่ด้วยนะครับ
เมื่อเปิดโปรเจคมาครั้งแรก eclipse จะเริ่ม build ตามปกติมันจะ build ขึ้นมาโดยไม่มี error เกิดขึ้น และคุณก็จะไปต่อได้อย่างสบายใจ แล้วถ้ามันยังมีอะไรไม่น่าชื่นใจก็ลอง uncheck แล้วก็ recheck ที่ Project > Build Automatically เพื่อบังคับให้มัน rebuild
Note: บางครั้ง eclipse มันจะเพิ่ม import android.R เข้ามาให้ที่ด้านบน ของไฟล์ ที่มีการเรียกใช้ resource โดยเฉพาะตอนที่คุณสั่งให้ eclipse sort หรือทำอย่างอื่นเพื่อจัดการการ import ซึ่งอาจจะทำให้เกิด error ได้ ลองมองหา import ที่ผิดที่ว่านั้นแล้วก็ลบออก[ยังไม่ได้ลองเพราะฉะนั้นมันยังไม่เกิดขึ้นกับผม]
Compiling android ๒
วิธีการ Compile (ในแบบของผม ผิดถูกช่วยวิจารณ์ด้วย)
มาๆ วิธีการกันมั่ง จริงๆ มีวิธีมีอยู่แล้วที่ http://source.android.com/download เขียนไว้เผื่อไม่อยากอ่านภาษาฝรั่ง
ขั้นแรก เลิกใช้ windows (จริงจังนะ)
ขั้นที่ 2 เราต้องลงโปรแกรมตามนี้ (ต้องการ internet นะ)
- Git 1.5.4 หรือใหม่กว่า
- JDK 5.0 หรือใหม่กว่า ในที่นี้เค้าบอกว่า Java 6 ไม่ support เพราะฉะนั้นผม uninstall ออกเลย
sudo apt-get remove sun-java6-jdk sun-java6-jre sun-java6-bin - flex, bison, gperf, libsql-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl.
ด้วยคำสั่งนี้บรรทัดเดียว(ย้าวยาว รอพักนึงตามความเร็ว internet)
sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
เค้า บอกต่ออีกว่าเราอาจจะต้องการ Valgrind เครื่องที่จะช่วยให้เราหาว่าเกิดปัญหากับ memory ขึ้นหรือเปล่า(leaks, stack corruption, array bounds overflows, etc.) ไม่รู้มันเป็นไงเหมือนกันเค้าว่าไงก็ว่าตามนั้น
sudo apt-get install valgrind
แล้วก็ถ้าเป็นบน 8.10 คุณก็คงต้องการ version ใหม่ของ libreadline ด้วย (คือไรฟระ ตู 9.04 เออๆ เอาด้วย)
อันนี้ของเดิมของเค้า
sudo apt-get install lib32readline5-dev
มันไม่ได้เลยเปลี่ยนเป็นอันนี้(ด้วยความวิสาสะ)
sudo apt-get install libreadline5-dev
เสร็จแล้วขั้นที่ 2 สำหรับ ubuntu 64, และ Mac กระผมไม่ได้ลองนะ
ขั้นที่ 3 install Repo (ถ้าจะเริ่มมั่วมันก็ตั้งก่ะอันนี้แหละ)
- สร้าง directory ขึ้นมาอันหนึ่งสำหรับใส่ repo
cd
mkdir bin
vi .bashrc
กด i เพื่อพิมพ์ใน vi เพิ่มบรรทัดนี้เข้าไป
export PATH=${PATH}:/home/ชื่อusernameของเครื่องคุณ/bin
กด :wq เพื่อออกจาก vi และบรรทึกไฟล์
แล้วก็เพิ่มเข้าไปใน bash ปัจจุบัน โดยใช้คำสั่งข้างล่าง (จุด เว้นวรรค จุดแบชอาซี)
. .bashrc
ทดสอบด้วย
echo $PATH
ผลที่ถูกต้องคือควรจะมี /home/ชื่อusernameของเครื่องคุณ/bin เป็นส่วนประกอบของข้อความที่พิมพ์ออกมา - download repo
curl http://android.git.kernel.org/repo >~/bin/repochmod a+x ~/bin/repo
- สร้าง directory สำหรับเก็บ source code
mkdir myandroid
cd myandroid - รัน repo init
repo init -u git://android.git.kernel.org/platform/manifest.git - ใส่ชื่อ และ email ถ้าเกิดต้องการจะ submit code อันนี้ผมกรอกไปเลยแม้ไม่เคยคิดจะส่งกลับก็ตาม
เมื่อเสร็จแล้วควรจะได้อะไรทำนองนี้แบบนี้
repo initialized in /mydroid
ขั้นที่ 5 เอาไฟล์มันลงมา
คำสั่งนี้จะโหลด ไฟล์ทั้งหมดของ project จาก repositories ลงมาเลย
repo sync
พักกินข้าวกินหนมหรืออะไรก็ว่าไป นานโขตามความเร็ว internet
ขั้นที่ 6 Verifying Git Tags (อันนี้แหละที่มั่ว)
ให้ทำสั่งนี้เพื่ออะไรซักอย่าง งงๆ
gpg --import
มันจะขึ้น promt ให้เราใส่อะไรซักอย่างให้ใส่สิ่งนี้ลงไปแล้วกด ctrl+d
-----BEGIN PGP PUBLIC KEY BLOCK----- |
หลังจากนั้นคุณจะสามารถ verify tag ได้ด้วยคำสั่ง
git tag -v tagname
แต่ว่าผมไม่รู้นี่สิว่าไอ้ tagname เนี่ยมันเอามาจากไหน แล้ว tag ในที่นี้คือไรฟระ?
ขั้นที่ 7 Building the code (ข้ามมาอย่างไม่สนใจ -_- )
ง่ายมากๆ ถ้าโหลดไอ้พวกนั้นมาเสร็จแล้ว มันจะมี Makefile มาให้เข้าไปใน directory นั้นแล้วพิมพ์ make ก็พอ
cd mydroid
make
รอไปเลยครับนาน ของผม 2 ชม.
ผมเข้าไปปิด gdm ก่อน( gui บน ubuntu) เพื่อให้มันทำงานให้เต็มที่
ctrl + alt + f6
login
sudo /etc/init.d/gdm stop
ใส่ password
แล้วค่อยไปสั่ง make
ถ้าเกิดมันล้มเหลว เพราะว่า ไม่มี run-java-tool อะไรทำนองนี้ ให้ลอง set ANDROID_JAVA_HOME เป็น $JAVA_HOME ด้วยอะไรทำนองนี้
export ANDROID_JAVA_HOME=$JAVA_HOME
แต่ปัญหานี้ไม่เกิดขึ้นกับผม
แล้วก็ run ไปเป็น ชม. นั่นแหละ
แล้วตอนนี้ก็ไม่รู้จะทำไรต่อแล้ว หุหุ
วันอังคารที่ ๒๖ พฤษภาคม พ.ศ. ๒๕๕๒
Compiling android ๑
วันนี้ compile Android จาก source code ดูปรากฏว่านานมาก แล้วไม่ได้แก้อะไรเลยแบบว่าได้ source มา compile เลย พิมพ์ make เลย ซึ่งผลคือนานมากๆ แล้วก็เปิด firefox อ่านนู่นนี่ไปด้วย ผลคือ ram ไม่พอมั้งเครื่องค้างเลย compile ใหม่! ฮ่วยย!! รอบนี้ปิด gdm compile เลย[sudo /etc/init.d/gdm stop] ผลคือได้เรื่องครับ ประมาณ 2 ชม. พอดีไม่ได้จับเวลาไว้ [RAM 1GB, CPU Intel Pentium D 3.00 GHz, Ubuntu 9.04]
แล้วผลต่อจาก compile ก็ได้ dir ออกมา 1 dir คือ out/ ข้างในประกอบด้วย อะไรประมาณนี้ แต่ว่ายังไม่รู้เลยว่าจะเอาไปทำอะไรต่อ??
ผม: compile เสร็จเอาไปทำอะไรได้ต่อวะเนี่ย
เพื่อน: นั่นซิ
เพื่อน: เอาไปทำอะไรได้อ่ะ ?
เพื่อน: อย่างถ้าเรามี เครื่อง T1 เราเอาลงไปยังไงอ่ะ
ผม: เอาไปแทน emu ตัวปัจจุบันยังไงก็ยังไม่รู้เลย
นั่นแหละครับปัญหา (-_-) ใครมีคำตอบช่วยบอกหน่อยจะขอบคุณมากๆ ครับ
วันศุกร์ที่ ๒๒ พฤษภาคม พ.ศ. ๒๕๕๒
วันอาทิตย์ที่ ๑๗ พฤษภาคม พ.ศ. ๒๕๕๒
ไปดูหนังสยองมา เทวา ก๊ะ ซาตาน
ข้อความด้านล่างต่อไปนี้ไม่ได้เป็นการ spoil เลยแม้แต่น้อย [ทำหน้าจริงจังสุดชีวิต]