อยากรู้ว่า app บน android มันแยก interface จากอะไรครับ ? คือผมซื้อ nexus 7 มาแต่งงว่ามันถูกจำแนกว่าเป็น tablet หรือ มือถือครับ ? คือการที่ nexus แสดงผล app เป็น tablet/mobile นี่อยู่ที่คนเขียน app หรือกำหนดโดย model เครื่องครับ (เหมือน ipad, ipad mini ==> tablet | iPhone,iPod ==> mobile)
ปล ผมไม่รู้ว่าไอ้ที่ใช้อยู่มันเป็นหน้าจอของ tablet หรือ มือถือ เพราะนี่เป็น android เครื่องแรก งงมาก
on
รีบแก้เพราะปล่อยไก่ :P
-Rookies- Fri, 02/11/2012 - 10:57
รีบแก้เพราะปล่อยไก่ :P
iOS ไม่ว่าจะ iPhone, iPad,
roongroj Fri, 02/11/2012 - 09:27
iOS ไม่ว่าจะ iPhone, iPad, iPad mini & iPod Touch เขียนโปรแกรมเหมือนกันครับ
จะต่างกันตรง @ ขนาดหน้าจอ iPhone รุ่นแรก ๆ จนถึง 3Gs เขียนโปรแกรมให้รองรับ 480 × 320 ส่วน iPhone 4/4S เขียนโปรแกรมเหมือนเดิม ระบบขยาย 2X ให้เป็น 960 × 640 อัตโนมัติ ส่วน iPhone 5 1,136 × 640 แม้ระบบจะขยายขนาน App ให้อัตโนมัติ เท่าตัว แต่ไม่เต็มจอครับ ต้องเขียนโปรแกรมขึ้นมาเฉพาะให้รองรับ 1,136 × 640 ขึ้นมาโดยเฉพาะ ถึงจะถือว่าเป็น App ของ iPhone 5 แบบเต็ม ๆ จอ
ส่วน iPad 1 - 2 & mini ขนาดหน้าจอ 1,024 × 768 หาก Run App ของ iPhone จะขยายขึ้นมา 2X ได้แค่ 960 × 640 ไม่เต็มจอ ต้องเขียนโปรแกรมขึ้นมาเฉพาะให้รองรับ 1,024 × 768 จึงจะถือว่าเป็น App ของ iPad เช่นกันครับ ส่วน iPad 3 - 4 ชนาดหน้าจอ 2,048 × 1,536 ระบบก็ขยายความละเอียดให้ App ของ iPad แสดงผลขึ้นมา 2X แบบเต็ม ๆ จอ และ ขยาย App ของ iPhone ขึ้นมา 4X แบบไม่เต็มจอ ครับ
Android คล้าย ๆ กับ iOS
roongroj Fri, 02/11/2012 - 09:39
Android คล้าย ๆ กับ iOS แต่มีขนาดจอ หลากหลายกว่ามาก ๆ แถมมี Hardware แตกต่างกันมาก ๆ ถือว่าเป็นงานหนักมาก ๆ ที่จะรองรับ Device ของ Android ทั้งหมด Google จึงต้องทำ Nexus ขึ้นมาเป็นมาตราฐานกลาง และ เครื่องสำหรับพัฒนา App
Android เปิดกว้างในการเข้าถึง API ได้มากกว่า iOS ทั้งระบบ Application และ Service หรือ Plug-in สามารถ Share Resource หรือ เข้าถึง Data File ของ App อื่น ๆ ได้ แต่มันหมายถึง Security @ น้อยกว่า iOS ด้วยเช่นกัน
ความหมายของ Tablet จริง ๆ คือ หน้าจอขนาดใหญ่ เพื่อทำงานแทน Desktop หรือ PC ได้
ส่วน Mobile คือ สามารถโทรศัพท์ได้ บางเครื่องเป็นทั้ง Tablet & Mobile เช่น Note ครับ
ถ้าหมายถึง file แต่ละ app
neonicus Fri, 02/11/2012 - 14:05
In reply to Android คล้าย ๆ กับ iOS by roongroj
ถ้าหมายถึง file แต่ละ app เขียนไปบน sdcard ก็คงใช่อะครับที่ว่า secure น้อยกว่า
แต่ว่าแต่ละ app เข้าถึง .db ของตัวอื่นไม่ได้หนิครับ เวลาจะ backup /data/data ยังต้องใช้สิทธิ์ root เลย
คือจะบอกว่าแค่ .db ใน
hobbitxp Sat, 03/11/2012 - 14:23
In reply to ถ้าหมายถึง file แต่ละ app by neonicus
คือจะบอกว่าแค่ .db ใน ถ้าไม่ได้เข้ารหัสไว้เนี้ยก็เอาออกมาไม่ยากหรอกครับ แต่เรื่อง secure ยังไงผมก็ว่า ios ดีกว่าครับ
http://www.youtube.com/watch?v=zMyonG9YgCo อันนี้ของ droid
decompile apk
lancaster Sat, 03/11/2012 - 14:52
In reply to คือจะบอกว่าแค่ .db ใน by hobbitxp
decompile apk เกี่ยวไรกับเรื่อง access data แอพอื่นหว่า?
ผมคงอ่านผิดเองครับ
hobbitxp Sat, 03/11/2012 - 15:06
In reply to decompile apk by lancaster
ผมคงอ่านผิดเองครับ
จริง ๆ แล้ว Android
mr_tawan Fri, 02/11/2012 - 10:48
จริง ๆ แล้ว Android ไม่มีการแยกระหว่าง Tablet กับ phone ครับ ปัจจัยหลักมีอยู่แค่สองอย่าง คือ ความละเอียดของหน้าจอ และความหนาแน่นของ Pixel
ปัจจุบัน Android มีความหนาแน่นของ pixel อยู่ 5 ระดับ คือ ldpi, mdpi, hdpi xhpdi (ก็ตามชือเลย low, medium, high, extra-high dpi) และ tvdpi สำหรับทีวี เรื่องประหลาดคือ ... Nexus 7 ไปตกอยู่ใน tvdpi ซึ่งเขาเอาไว้ใช้สำหรับทีวี(ผมก็ยังงง ๆ เนี่ย 555)
เมื่อได้ทั้งสองอย่างนี้ระบบจะเอาค่าไปคำนวนออกมาเป็นความละเอียดที่ไม่ใช่ pixel บนหน้าจอจริง ๆ แต่เป็นจำนวน จุดที่ไม่ขึ้นกับความละเอียด เรียกว่า density-independent pixel หรือ dp สำหรับ Nexus 7 นั้นจะมีความละเอียดในหน่วย dp อยู่ที่ 800 x 600dp ครับ
ที่อธิบายยืดยาวขนาดนี้คือจะบอกว่าเราสามารถระบุใน app ได้เลยว่าต้องการให้ layout ที่เราออกแบบนี้ทำงานได้เฉพาะกับอุปกรณ์ที่มีหน้าจอขนาดไหน (หน่วยเป็น dp) สมมติว่า app ผมมี layout สองตัวสำหรับหน้าจอเดียวกัน ตัวหนึ่งไม่มีการระบุขนาดอะไรเป็นพิเศษ แต่อีกตัวผมระบุว่าสำหรับอุปกรณ์ที่มีขนาดอย่างน้อย 600dp บน Nexus 7 จะใช้งาน layout ตัวที่สองครับ (แต่บน Galaxy Nexus ที่มีขนาดเป็น dp แค่ 520x360 จะใช้ layout อันแรกเพราะว่ามีขนาดไม่ถึงครับ ถึงแม้ว่าจริง ๆ แล้ว Galaxy Nexus กับ Nexus 7 มีความละเอียดเป็น pixel แทบจะเท่ากัน แต่ Galaxy Nexus มีขนาดจอแค่ 4.65" ก็เลยไปตกที่ xhdpi)
การระบุ layout นี่จริง ๆ ทำได้ยืดหยุ่นมาก เช่น จะระบุว่าให้ใช้ layout นี้ตอนที่หน้าจออยู่ในแนวนอน หรือ มีขนาดในแนวขวางขั้นต่ำเท่าไหร่ แนวตั้งขั้นต่ำเท่าไหร่ หรือด้านที่สั้นที่สุดอย่างน้อยเท่าไหร่ ก็ทำได้
ผมจะเขียนให้ app นึง รันบนมือถือจอเล็กมาก ๆ (เช่นสัก 2") ใช้ layout นึง ใหญ่ขึ้นมาหน่อย (4") อีก layout นึง 7" อีก layout นึง ยาวไปจนถึง 10" อีก layout นึงก็ทำได้ ไม่ลำบากยากเย็นอะไร แต่พอเริ่มเยอะมันก็ยิ่งบานปลายดูแลลำบาก 555) ส่วนใหญ่เขาเลยเขียนแค่ มือถือ แท๊บเบล็ต (และ/หรือทีวี) แค่นั้น
จริง ๆ แล้วการเขียน app ให้รองรับขนาดหน้าจอไม่ได้ยากอย่างที่หลาย ๆ คนคิด แค่ว่าต้องออกแรงเยอะกว่า iOS ที่มีอยู่ไม่กี่ขนาด (แต่เริ่มเยอะขึ้นเรื่อย ๆ ) เท่านั้นเอง
ปล. ลองเดาเล่น ๆ ว่า Google TV บนหน้าจอขนาด 40" ระบบจะรายงานว่าอุปกรณ์มีขนาดในหน่วย dp เท่าไหร่เล่น ๆ ดูครับ หน้าจอ 40" กับความละเอียด 1980 x 1080 เนี่ย 555 (ใบ้ว่าใช้ tvdpi)
เหมือนจะเข้าใจคร่าวๆครับ 555
sarunw Fri, 02/11/2012 - 18:07
In reply to จริง ๆ แล้ว Android by mr_tawan
เหมือนจะเข้าใจคร่าวๆครับ 555 คือผมไม่สามารถบอกได้เลยว่า nexus 7 มันจะได้หน้าจอเป็น tablet หรือ mobile ขึ้นอยู่กับว่า dev เค้าใส่ layout อะไรสำหรับจอแบบ nexus ใช่มั้ยครับ
โลกของ android ช่างลึกล้ำ ขอบคุณทุกคำตอบครับ
สรุปว่า จะมองเป็น Mobile หรือ
tukzazaza Sat, 03/11/2012 - 09:23
In reply to เหมือนจะเข้าใจคร่าวๆครับ 555 by sarunw
สรุปว่า จะมองเป็น Mobile หรือ Tablet ขึ้นอยู่กับวิธีคำนวนของ Dev ><
ใช่ครับ
mr_tawan Sat, 03/11/2012 - 11:07
In reply to เหมือนจะเข้าใจคร่าวๆครับ 555 by sarunw
ใช่ครับ :)
เอาไว้ถ้าอยากมาเขียน App ก็มาลองทำความเข้าใจอีกทีนะครับ เขียนได้ไม่เสียตังค์ เอาไว้เสียตังค์ตอนอยากเอาขึ้น Play Store จ่ายครั้งเดียวเอาขึ้นได้ตลอดชาติ (หรือจนกว่า Google จะเจ๊ง)
ชอบคุณครับ อธิบายชัดเจนมาก
atjr Sat, 03/11/2012 - 23:44
In reply to จริง ๆ แล้ว Android by mr_tawan
ชอบคุณครับ อธิบายชัดเจนมาก
ถ้าเป็นสาว ๆ
mr_tawan Mon, 05/11/2012 - 23:41
In reply to ชอบคุณครับ อธิบายชัดเจนมาก by atjr
ถ้าเป็นสาว ๆ มาบอกกับผมแบบนี้นี่ผมก็หวั่นไหวนะ 555
หลักๆใช้ RelativeLayout,
tukzazaza Fri, 02/11/2012 - 11:23
หลักๆใช้ RelativeLayout, LinearLayout, ListView อะไรพวกนี้ มันก็ยืดๆ ตามขนาดจออยู่แล้ว ผมไม่เห็นว่ามันจะยากอะไรเรื่องขนาดจอ
ผมไม่ได้ dev
sarunw Fri, 02/11/2012 - 18:08
In reply to หลักๆใช้ RelativeLayout, by tukzazaza
ผมไม่ได้ dev หนะครับถามในมุมมองของผู้ใช้ว่า nexus 7 มันเป็น tablet หรือ mobile หนะครับ
logo,icon,picture ไงครับ
hobbitxp Sat, 03/11/2012 - 14:28
In reply to หลักๆใช้ RelativeLayout, by tukzazaza
logo,icon,picture ไงครับ
ดูความละเอียดและขนาด
SleeperMoNKeY Fri, 02/11/2012 - 18:57
ดูความละเอียดและขนาด จากนั้นก็เลือก layout ที่คิดว่าเหมาะสมมาใช้ครับ ไม่ได้แยกเป็น phone หรือ tablet