ผู้สนับสนุน

วันพฤหัสบดีที่ ๒๘ พฤษภาคม พ.ศ. ๒๕๕๒

Compiling android ๒

วิธีการ Compile (ในแบบของผม ผิดถูกช่วยวิจารณ์ด้วย)
มาๆ วิธีการกันมั่ง  จริงๆ มีวิธีมีอยู่แล้วที่ http://source.android.com/download เขียนไว้เผื่อไม่อยากอ่านภาษาฝรั่ง

ขั้นแรก เลิกใช้ windows
(จริงจังนะ)

ในที่นี้ลง Ubuntu 9.04 32 bit นะ(วิธีลง เหมือนๆ ของเก่า)

ขั้นที่ 2 เราต้องลงโปรแกรมตามนี้ (ต้องการ internet นะ)
  1. Git 1.5.4 หรือใหม่กว่า
  2. JDK 5.0 หรือใหม่กว่า ในที่นี้เค้าบอกว่า Java 6 ไม่ support เพราะฉะนั้นผม uninstall ออกเลย
    sudo apt-get remove sun-java6-jdk sun-java6-jre sun-java6-bin
  3. 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 (ถ้าจะเริ่มมั่วมันก็ตั้งก่ะอันนี้แหละ)
  1. สร้าง directory ขึ้นมาอันหนึ่งสำหรับใส่ repo


    cd
    mkdir bin
    vi .bashrc

    กด i เพื่อพิมพ์ใน vi เพิ่มบรรทัดนี้เข้าไป

    export PATH=${PATH}:/home/ชื่อusernameของเครื่องคุณ/bin

    กด :wq เพื่อออกจาก vi และบรรทึกไฟล์
    แล้วก็เพิ่มเข้าไปใน bash ปัจจุบัน โดยใช้คำสั่งข้างล่าง (จุด เว้นวรรค จุดแบชอาซี)

    . .bashrc

    ทดสอบด้วย

    echo $PATH

    ผลที่ถูกต้องคือควรจะมี /home/ชื่อusernameของเครื่องคุณ/bin  เป็นส่วนประกอบของข้อความที่พิมพ์ออกมา

  2. download repo

    curl http://android.git.kernel.org/repo >~/bin/repo
    chmod a+x ~/bin/repo
ขั้นที่ 4 init repo
  1. สร้าง directory สำหรับเก็บ source code

    mkdir myandroid
    cd myandroid

  2. รัน repo init

    repo init -u git://android.git.kernel.org/platform/manifest.git

  3. ใส่ชื่อ และ 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-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END 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 ไปเป็น ชม. นั่นแหละ

แล้วตอนนี้ก็ไม่รู้จะทำไรต่อแล้ว หุหุ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น