כל הפוסטים של elcuco

מחשבות כפירה

בזמן האחרון אני משתמש במקבוק פרו בתור מחשב ראשי. מדובר על מחשב בגודל 13 אינצ׳ ממש קליל, ובעל SSD. זה שיפור ענק בשבילי מאז המחשב הנייד הקודם שלי (לנובו 3000 ישן בעל דיסק מכאני). אני משתמש כאן במאק ולא התקנתי לינוקס, מטעמי עבודה. זה אולי תירוץ, אבל אני מפחד להיתקע בלי רשת (אין כרטיס רשת חוטי כאן רק Wifi).

האמת? המחשב בנוי בצורה מדהימה. הוא מרגיש ממש קשיח וזמן הסוללה שלו מצויין כרגע מודיע לי שיש לי 6:13 שעות עבודה (ויצא לי לראות על המסך כמה פעמים 7,8 שעות עבודה). המקלדת יחסית בסדר (למעט זה שחסר home/end אבל יש מקשים אחרים שעושים את העבודה). המערכת יחסית שמישה. המסוף פה בסדר, ודפדפן ספארי הוא חוסך בסוללה בטירוף (זה נותן לי בערך שעתיים יותר סוללה). הוא לא מתחמם ועד שהתחלתי לשחק סטארקרפט לא ידעתי שיש פה מאוורר, וכשהוא כן עובד – הוא ממש שקט.

מצד שני, בלינוקס אני לא ממש מרוצה. אני רוצה ש-Wayland יכנס כבר לשימוש. יש לי רגשות מעורבים בקשר ל־systemd. כמו כן KDE הוא בקושי שולחן עבודה (ולא סביבת עבודה). הדפדפן שלהם לא מספיק טוב אז אני משתמש ב-Firefox, KMail פשוט לא עובד אצלי אז אני משתמש ב-Thunderbird, בתור עורך kate ממש טוב, אבל Sublime יותר יפה ואני מוצא את עצמי משתמש יותר ויותר בסביבות עבודה משולבות כמו AndroidStudio או QtCreator. מה שנשאר לי זה מסוף מנהל החלונות והפאנל/מכתבה.  זה כל מה שאני משתמש מ-KDE.

אני פוזל לכיוון של LXQT אבל הוא ממש לא בשל לשימוש ומאוד פרימיטיבי. זאת סביבת העבודה של שנות ה-2000 שכתובה בטכנולוגיה מיושנת (הם משתמשים ב-Qt4 ולא Qt5).

בעצם, דביאן מתפקד מצויין. אני מקבל עדכונים שטופים והכל ממש יציב (למעט הבעיות של פלאש שהפסיק לעבוד בכרומיום).  אולי שווה להודות שהשולחן עבודה כבר ״עשוי״. הוא התיייצב, ואין מקום לשינויים גדולים. אולי האתגר נמצא כיום במכשירים ניידים. חבל שאנדרויד שולט שם.

 

Share Button

מעבר אל וורדפרס מדרופל

לפני שנים רבות פתחתי אתר בבלוגלי. כשהאתר נסגר, ייצאתי את התוכן שלי וייבאתי אותו אל אתר דרופל משלי. למה דרופל? כי באותה תקופה עבדתי בתור מתכנת דרופל והכרתי את הפלטפורמה.

הבעייה היא שמאוד קשה לעבוד עם דרופל. התחזוקה של האתר לא מתבצעת דרך הווב, ועורכי הטקסט (כן, אני מכיר את wysiwyg) די דרעק. נכון, בדרופל 7 הם השתכללו אבל הם עדיין ממש רעים וקשה לי לעבוד איתם. כמו כן – התמיכה בעברית של וורספרס יותר טובה – העיצובים תומכים ב־RTL ממש יפה, ועורך הטקסט לא מנסה להתעלל בי.

אז העברתי את האתר שלי לוורדפרס. ולצורך זה השתמשתי בקוד הבא: http://robinsingh.name/migrate-drupal-7-to-wordpress-3-x/ זהו פשוט תסריט php שהפעלתי משורת הפקודה והוא העביר את ה־nodes של דרופל לכאן.

בנוסף גם התקנתי בוורדפרס את התוספים הבאים:

  1. http://wordpress.org/plugins/polylang/ – תמיכה בריבוי שפות. נהנתי ממנו יותר מאשר i18n של דרופל, הוא מרגיש יותר טוב אבל יש לו חסרונות. למשל, לעמוד “אודות” שלי לא יכול להיות אותו שם באנגלית או עברית. זאת אומרת, אותה “כתובת”. שחקו פה ותבינו.
  2. http://wordpress.org/plugins/wp-rtl/ – מאפשר לשנות את כיוון כתיבת התוכן. חובה.
  3. https://wordpress.org/plugins/hebrewdates/ אופסי, קישור לא נכון
    http://wordpress.org/plugins/wordpress-hebrew-date/ – מוסיף תאריך עברי לכל פוסט. סתם לכיף. [תודה לחתול על התיקון]
  4. http://wordpress.org/plugins/hupso-share-buttons-for-twitter-facebook-google/ – לשיתוף של פוסטים
  5. https://wordpress.org/plugins/quick-pagepost-redirect-plugin/ – מאפשר לי לעשות redirect לכתובות.

גיליתי שבעת המעבר לשרת חדש צריך לעדכן את כתובת הבסיס של האתר (כפי שמתואר כאן), אבל המודול Polylang הפריע לי די הרבה. הפתרון שלי היה לכבות אותו, לשנות את כתובת האתר ולהפעיל מחדש.

כמו כן – הפוסטים שייבאתי מבלוגלי (לפני 2010) לא הפיעו כאן. היו כמה בעיות נוספות:

  1. הפוסטים ייובאו לכאן בתור story ולא post. שאילתת SQL פשוטה ואני יכול לראות אותך ברשימת הפוסטים בממשק הניהול אבל לא באתר.
  2. כדי לראות אותם באתר – הייתי צריך ללכת לממשק הניהול של המודול Polylang ולהגדיר שפת ברירת מחדל עבור כל הפוסטים שאין להם שפה. באופן מפתיע – אלי שלא ראיתי (הפוסטים שכתבתי באתר דרופל שלי כן עבדו).
  3. הבעייה האחרונה הייתה שהקישורים בפוסטים (בכותרת, לפוסט עצמו) לא עבדו והיה קישור לעמוד הראשי. זה היה כי סוג הקישור היה מוגדר להיות שם הפוסט. וחלק מהפוסטים לא היה לשם שם… הפתרון – לתת מספר ואחרי זה השם.

 

Share Button

חופש -שימוש ב־owncloud

כל משתמש אנדרויד שחובב חופש מנסה להימנע מהידיים של גוגל. אז מתקינים רומים נקיים (אני משתמש ב־cyanogenmod שאני בונה בעצמי). השלב הבא הוא להוציא את השירותים של גוגל. נתחיל מהמרק, במקומו נשתמש ב־fdroid והיא תוכנה שמתקינים על הסלולרי ומהווה חנות וירטואלית שמכילה רק תוכנות חופשיות. התוכנות שם די מאעפנות… זה לא מה שאני רגיל אליו ב”לינוקס”. אני מניח שהעולם הזה עוד מתפתח ואני יכול לצפות לטובה. (דיברתי על זה בפוסט אחר, http://cucomania.dyndns.info/node/236).

אני משתמש גם ב־owncloud בתור שרת. זה מחליף את dropbox היומנים של גוגל ואנשי הקשר. הבעייה כאן, היא שיש המון הגדרות לעשות ידנית במכשיר, ואין תוכנה אחת שמטפלת בכל הפונקציונליות.

התוכנות המדוברות כאן תוכנות חופשיות, וזמינות בשרתים של FDroid (אפשר להתקין הכל מהתוכנה).

Share Button

שידרוג אל cyanogenmod 10.1.2 – אנדרויד 4.2.2 – חלק שמיני בסדרה

הטלפון שלי מקרטע. לפתוח את רשימת אנשי הקשר לוקח לפעמים כמה שניות. חקרתי והבנתי שמה שקורה זה שאין לי מספיק זכרון. היישומים שיש עבור 4.2.2 פשוט צורכים יותר זכרון ממה שיש לי. התקנתי אנדרויד 2.3 והטלפון הגיב יפה. טוב – נעשה ניסוי: נתקין אנדרויד, אבל בלי השטויות של גוגל. זה אומר בלי gapps.  אז התקנתי Cyanogenmod 10.1.2 – נקי.

מה קורה? הטלפון שלי פשוט מגיב מהר. באמת הכל קורה מיידית! אז איך מתקינים יישומים? דרך תוכנה חופשית. אני משתמש כרגע ב־f-droid. יש מעט יישומים, אבל חלקם מאוד מעננינים. אני אכתוב עליהם בפוסט אחר. אני כן רוצה להדגיש איזה עבודה טובה האנשים עושים שם. הם לא מקבלים apk מוכן, אלא מקמפלים בעצמם, וכמו כן כאשר יש שימוש בקומפוננטות סגורות הם משכתבים (למשל: ספריות פרסומות, הם כותבים ספריות חדשות עם stubs). אם אין אפשרות להסיר את התלות – זה כתוב בהסברים של התוכנה. וכמו כן, מה שהכי מפתיע אותי, זה שהסברים על התוכנה לא נכתבים על ידי המפתח, אלא על ידי ההפצה. יש הסברים לגבי איזה גרסה טובה ומה עובד ומה לא. ממש תענוג לקרוא.

כרגע, אני רוצה להסביר אודות החוייה המסורסת שיש לי.

  1. מיקום מבוסס רשת לא קיים – זה משהו קינייני של גוגל, לא זמין בגרסת קוד פתוח.
  2. אין מקרט, תתפלאו כמה זה חסר. כי אין אפשרות להתקין חבילות של יצרנים גדולים ללא המרקט. ואם קנית ואתה רוצה להתקין על מכשיר נקי, אתה לבד. לא מדברים איתך, גם בתור לקוח משלם.
  3. מנוע טקסט לדיבור? קינייני
  4. קבוצות באנשי קשר? רק כאשר אתה מחבור לאיזה שהו חשבון. כמובן, חשבון דואר של גוגל שלא זמין כאן…

אני צריך להבין כמה המכשיר שלי שמיש ביום יום, ואיך אני יכול להתקין יישומים “גדולים” שהם לא קוד פתוח. אני שמח שעוקבים אחרי פחות.

עוד קריאה מעניינית שהיא קשורה ולא קשורה, הוא “למה יישומי ווב הם איטיים“.

Share Button

שידרוג אל cyanogenmod 10.1 – אנדרויד 4.2.2 – חלק שביעי בסדרה

לאחר השימוש שלי ברום של סמסונג/פלאפון, אני חייב להגיד שזה תענוג לחזור לרומים נקייים יותר. כמו כן, השתמשתי ב־recovery console כדי לשחזר את הסלולרי בדיוק איך שהוא היה לפני זה. זה היה הגיבוי הכי טוב שיצא לי לראות על כל מערכת הפעלה. כדאי שאני אכתוב על זה בהזדמנות. כעת – אני אספר רק על שיפורים ב־cyanogenmod 4.2.

הגרסה אמורה להיות רק תיקון קטן של JellyBean, אבל כל יום שאני משתמש בה אני מגלה בה דברים חדשים.

  1. השעון כרגע גם כולל שעון עצר. והעיצוב הוא הכי טוב שראיתי – הינה הדגמה: http://www.androidcentral.com/inside-android-42-new-clock-app
  2. הגדרות מהירות – שני אצבעות מלמעה (במקום אחד) או אחד מצד ימין: http://www.gottabemobile.com/2012/11/21/how-to-use-quick-settings-in-android-4-2-jelly-bean/
  3. הגדרות מפתחים באנדרויד 4.2… נעלמו… צריך לבחור את תפריט העזרה, אודות, ואז ללחות על מספר Build בדיוק שבע פעמים.
    http://www.xda-developers.com/android/enable-developer-options-in-android-4-2-jelly-bean/
  4. היישום של המצלמה כרגע הוא מסך מלא. כל המסך הוא רק תמונה של המצלמה וכדי לעבור לגלריה פשוט גוללים הצידה. פשוט ביצוע יפה, חייבים להרגיש אותו כדי להבין: http://updates.lifehacker.com/post/34830095585/get-the-android-4-2-camera-and-gallery-on-non-jelly
  5. המקלדת החדשה של אנדרויד 4.2 כוללת תמיכה בגרירה. לפי דעתי – שוב הביצוע הכי טוב של הפיצ’ר הזה מכל המקלדות שבדקתי.
    http://www.intomobile.com/2012/10/30/try-out-new-android-42-keyboard-now/
  6. יותר אבטחה. אחד הדברים הכי מעניינים – כשמפעילים אפשרויות פיתוח במכשיר, לכל מחשב יש מפתח. יש צורך לזהות מחשבים לפי שניתן לקבל מעטפת על המכשיר דרך המחשב.
    http://android-http://developers.blogspot.co.il/2013/02/security-enhancements-in-jelly-bean.html
  7. תפריט ההפעלה מחדש שונה,כעת אי אפשר להיכנס ל־recovery אם המכשיר נעול (תיקון של cyanogenmod).
    https://plus.google.com/+CyanogenMod/posts/iWRWc4bdXJb
  8. היישור לימין של התפריטים עובד סוף סוף 🙂
  9. המחשבון של אנדרויד הועף והכניסו מחשבון מטורף. מלא בפיצ’רים מגוחכים כמו: ציור גרפים, חישוב מטריצות, מעבר בין בסיסים.
    http://www.androidpolice.com/2012/09/13/modified-calculator-app-with-advanced-options-released-to-the-play-store-will-become-the-new-default-in-cm10/
  10. מנהל קבצים מובנה בתוך cyanogenmod:
    http://www.xda-developers.com/android/cyanogenmod-adds-file-manager-to-nightlies/
  11. יישום ההודעות שופר. ב־cyanogenmod 10.0 הוא תמך במענה של טלפונים מתוך תפריט ההודעות, כיום אפשר גם לענות למסרונים, או סתם לסמן בתור “נקרא”.
    http://www.xda-developers.com/android/new-cm10-messaging-brings-message-popups-revamped-notifications/

יש עוד כמה דברים מעניינים כמו daydream, או הקלט הקולי שלא ממש מעניינים אותי…ובטח יש עוד דברים שאני לא מכיר 🙂

תזכורת: חזרה לרום של פלאפון – חלק שישי בסדרה

Share Button

שידרוג אל Cyanogenmod10 – חלק חמישי בסדרה

כבר כמה זמן אני פוזל לכיון של גרסה 4.1.2 של אנדרויד, שעליה מבוססת cyanogenmod10. אני התקנתי את גרסה m2, ולאחר מכן את הבנייה היומית 20121107, כמה ימים לפני השיחרור של הגרסה הסופית:

מה השתנה בגרסה הזאת?

  • הטמעה של פרוייקט חמאה. אני לא רואה שינוי, מהותי למעט צריכה רבה יותר של סוללה.
  • שיפורים מאוד משמעותיים בצריכה הסוללי – אני מאמין שאם אני לא מדליק את המסך, הסולולרי יוכל להחזיק מעל יום וחצי ללא הטענה, גם אם הוא מחובר לרשת. כמובן תלוי במרחק מהאנטנות הסלולריות.
  • המקלדת שיש ברום הזה ממש טובה.
  • שידרוגים של רומים מתבצעים מהממשק עצמו, בתפריט אודות. אפשר לראות לאיזה גרסאות לשדרג (יציבות, יומיות וכו’).
  • המכשיר עצמו מרגיש יותר איטי. יש ממש לאט ביישומים.

 הפעם, במקום לשדרג, איפסתי את הנתונים ובעזרת גיבוי טיטאניום, שיחזרתי את ההגדרות שהייתי צריך. טיפה עבודה שחורה, אבל אני חושב שקיבלתי טלפון יותר נקי ככה.

אני רוצה חודש הבא לחזור לרום המקורי של סאמסונג… סתם, להבין כמה טוב לי עם תוכנה חופשית באמת ולא עם הזבל שרב האנשים מקבלים בסלולרי ומקבלים בתור מובן מאליו.

תזכורת:

  1. חצי שנה עם אנדרויד
  2. חצי שנה עם האנדרויד – חלק 2 – PilotX
  3. חצי שנה עם האנדרויד – חלק 3 – cyanogenmod
  4. שידרוג אל Cyanogenmod9 – אנדרויד4 – חלק 4 בסדרה
Share Button

שידרוג אל Cyanogenmod9 – אנדרויד4 – חלק 4 בסדרה

לאחר שסיפרתי על החצי השנה הראשונה שלי בתור משתמש אנדורויד, איך פרצתי אותו והתקנתי רום ישראלי ולאחר מכן התקנתי Cyanogenmod7, החלק הרביעי במסע הוא שידרוג של אנדרויד אל גרסה חדשה: Cyanogenmo9, הלא הוא IceCreamSandwitch, אנדרויד 4.

השידרוג הוא משעמם, ובגדול עבר חלק. לאחר השידרוג הכל עבד למעט המקלדת שפשוט נתקעת ונסגרת כאשר אני כותב בעברית, אז התקנתי מקלדת חדשה (Hacker Keyboard – ממש טובה ודומה למקורית, ככה שלא הפסדתי חוויה אוטנטית). הבעייה השנייה הייתה שהגלריה פשוט קרסה בעלייה. הפתרון היה פשוט: ללכת להגדרות של הגלריה (הגדרות -> יישומים ->  הכל -> גלריה -> נקה נתונים).

אני רוצה להדגיש: שידרגתי גרסה של מערכת הפעלה בסלולרי, ולא איבדתי שום מידע. לא סימניות, אנשי קשר, יישומים.. הכל עבד חלק, למעט שתי תקלות קטנות שפתרתי אותן בקלות. אני כן יכול להגיד… שהמכשיר לפעמים מרגיש יותר כבד. זמן העלייה של היישומים יותר גדול, ו־Waze לוקח לי מלא זמן לתת הנחיות: “בעוד…. מאתיים……. ….. … מטר….. פניה… ימינה!”. מעיק משהו במיוחד כשאתה שומע פודקסטים!

Share Button

התקנה של cyanogenmod על Galaxy S I9000

השבוע התניסתי בהתקנה של Android על מכשיר Galaxy S I9000 חדש. ניסיתי להתקין את גרסה 9 של Cyanogenmod על Galaxy S (יש כבר גרסאות ליליות – כאן http://download.cyanogenmod.com/?type=nightly&device=galaxysmtd). אני אחסוך לכם את הטרחה – הן לא עובדות. האפליקציה של החיוג קורסת, אי אפשר לקבל או לשלוח שיחות או להכנס אל אנשי הקשר. בדקתי כמה רומים שונים (גם של MIUI). נחזור את Android 2.3.7 הישן והטוב.

השוני מהפעמים הקודמות הוא שהפעם את הכל ביצעתי באמצעות לינוקס. וזה בגדול מה שאני אסביר כאן. ההוראות מבוססות על מה שיש כאן: http://wiki.cyanogenmod.com/wiki/Samsung_Galaxy_S:_Full_Update_Guide

לצורך הכנות יש להוריד את הקבצים הבאים:

  1. תוכנה לצריבה של ה־boot loader. משהו מקביל ל־ODIN.  גרסה לחלונות ; גרסאה לאובונטו 32גרסה לאובונטו 64; גרסה למק;  קוד מקור (יש!): http://github.com/Benjamin-Dobell/Heimdall
  2. קרנל ראשוני מכאן: http://cmw.22aaf3.com/aries/gt-i9000/root/hardcore-speedmod.tar . מחלצים את התוכן שלו על ידי הפקודה
    tar xfv hardcode-speedmod.tar
  3. את הגרסה היציבה של cyanogenmod מכאן: http://download.cyanogenmod.com/get/nightly/galaxysmtd/cm_galaxysmtd_full-181.zip
  4. את התוספות של גוגל (Google play בעיקר – זה הכי חשוב): http://cmw.22aaf3.com/gapps/gapps-gb-20110828-signed.zip

הוראות הצריבה הן די פשוטות:

  1. מכניסים את המכשיר למצב הורדה. מכבים את המכשיר, ובהדלקה לוחצים על כפתור השמע התחתון, כפתור מסך הבית וכפתור הבית או כפתור ההדלקה. המכשיר ירשום downloading ויהיה סמל של אנדרויד סולל כביש.
  2. מחברים את המכשיר למחשב וכותבים את הפקודה הבאה (בחלונות אתם תשתמשו במעטפת הגרפית ותעשו משהו דומה, כמו כן – תסתכלו בהוראות באנגלית יש עוד פעולות).
    heimdall flash –kernel zImage
  3. המכשיר ייכבה ויידלק. כעת יש להיכנס ל־Recovery mod. בעת ההקלדה לוחצים על כפתור השמע העליון ומסך הבית. הניווט כאן מתבצע באמצעות הכפתורים של השמע, וכפתור ההדלקה.
  4. נכנסים אל mount and storage ובוחרים mount USB storage. כעת במחשב שלכם תוכלו לראות את המכשיר הסלולרי כמו כונן נשלף.
  5. תעבירו את הרום ואת התוספות של גוגל מהמחשב לסלולרי (שני קבצי ה־zip האחרונים בהורדות). חשוב מאוד – חכו שהעברת הקבצים תסתיים (הממשק הגרפי אצלי הודיע שהסתיים לפני שלינוקס סיים לכתוב את הקבצים בפועל… אחלה buffering), ואז תנתקו בצורה מסודרת את מערכת הקבצים (umount) במחשב ורק לאחר מכן בסלולרי (פשוט לבחור ב־umount USB storage בסלולרי).
  6. בסלולרי תבחרו על Go Back ואז ב־install zip from sdcard 
  7. בתפריט הבא אתם תנווטו בדיסק של המכשיר – ותבחרו את ה־zip של cyanogenmod.
  8. תחזרו על אותה פעולה וכעת בחרו ב־zip של התוספות של גוגל.
  9. המכשיר מותקן כרגע, לפני השימוש יש לנקות אותו טיפה.

כעת יש לנקות את הסלולרי:

  • wipe data/factory reset
  • wipe cache partition
  • advanced/Wipe Davik Cache
  • advaned/Wipe Battery status
  • reboot recovery
  • reboot system now
  • זהו. המכשיר שלכם מוכן, מזל טוב

כמה הערות לסיום:

  1. התקנה כזאת יכולה להפוך את המכשיר לאבן – קריא: הוא לא יעבוד כלל או במיקרה הטוב תאבדו נתונים. ראו הוזהרתם.
  2. החברות הסלולריות לא תמכנות בגרסה זו, ולכן אתם מאבדים אחריות על המכשיר – ואם תשלחו אותו לתיקון, יש סיכוי שיחזור עם הגרסה שלהם.
  3. כשניסיתי להתקין את heimdall אצלי במחשב (אובונטו 11.04) זה התלונן על גרסה של libusb1 ישנה מדי. התקנתי בכוח (dpkg –force-all -i …) וזה עבד בכל זאת. קימפול הגרסה מ־git כשלה אצלי גם.
  4. בעת ההתקנה בסלולרי אפשר לבחור rom־ים אחרים, התהליך הוא זהה. למעשה ככה התקנתי שלושה ארבעה רומים שונים לניסיון – פשוט בוחרים zip אחר.
  5. משום מה אצלי ה־rom של cyanogen נכשל בהתקנה בכמה פעמים הראשונות. התקנתי כמה rom־ים אחרים ואחרי זה הוא החליט שהמכשיר הזה תקין לגמרי (לפני זה הוא התלונן שהמכשיר הוא לא I9000. מוזר?)
  6. כמובן שהתהליך הזה מוחק הכל. תדאגו לגיבוי.
  7. במכשיר שהתקנתי עליו הבעלים שמר הכל בגוגל, לכן אחרי ההפעלה הראשונית המכשיר סנכרן מחדש את האפליקציות. מומלץ להתחבר לרשת אלחוטית כמה שיותר מהר כדי שלא יגמור לכם את המכסה שלכם.
  8. הסנכרון המדובר לקח בשעה במכשיר, ומשום מה לא כלל אנשי קשר (גיביתי אותם בנפרד באמצעות התוכנה הבאה. לצערי הייתי צריך לקנות אותה, כי בעת השחזור היא התלוננה שהמידע הוא ממכשיר אחר וזה לא אפשר בגרסה החינמית (אשמח להצעות אחרות).

השאלה הטובה היא: למה לי להתקין מחדש את הסלולרי שלי?

התשובה שלי היא: כשאתם קונים מחשב ומגיע עליו מותקן חלונות. נכון שהוא מגיע מלא בזבל, ואתם מתקינים אותו מחדש כדי לקבל מחשב נקי? למה אתם לא עושים את זה עם הסלולרי?

Share Button

טיפים לעבודה ב־C++‎ באנדרויד

בשבועות האחרונים עבודה אני עובד על יישום C++‎ שבגדול אמור לרוץ על אנדרויד. החלטתי בתור התחלה לכתוב את זה על PC רגיל כדי להשתמש בכלים פשוטים ורגילים (QtCreator, cmake, valgrind ועוד…). ברגע ההסבה לאנדרויד נתקלתי בכמה דברים:

  1. לגרום ל־cmake לקמפל עבור אנדרויד לא מסובך מדי, רק לקבוע כמה משתני סביבה לפני ההרצה של cmake וזהו. פרטים כאן: http://opekar.blogspot.com/2011/06/android-cmake-is-much-easier-in-ndk-r5b.html
  2. להשתמש בקבצי הכללה של C++ ואז לעשות using namespace זה מגניב, אבל לא עובד. ב־NDK האחרון הם לא נמצאים. פשוט תשתמשו בקבצי ההכללות הישנים והטובים של C.
  3. בעת הקישור (linking) אין צורך לקשר את pthreads, הפונקציות של threads נמצאות ישירות ב־Bionic. אין צורך לעשות -lpthread.
  4. אם אתם משתמשים בטריקים מלוכלכים כמו לקרוא ישירות ל־syscall יהיו לכם בעיות. השמות של הקריאות שונה. אני לא מסביר מעבר לכך כאן, מי שמספיק חכם לעשות דברים כאלו יידע למצוא את השמות המאימים ולעשות את ההתאמה בעזרת ifdef במקום מרכזי אחד (אני הגדרתי מחדש לפי השמות של glibc).

בשביל מספר 3 (חחח) אני השתמשתי בקטע קוד הזה בקובץ cmake שלי:

if( $ENV{BUILD_ANDROID})

    message(“Building for android, not linking pthread”)
else()
message(“Building for glibc, linking pthread”)
target_link_libraries(my_super_cool_application pthread)
endif()

וזה אומר שלפני ההפעלה של cmake רק צריך להגדיר עוד משתנה סביבה BUILD_ANDROID=1. פשוט שמתי אותו ב־script שקישרתי בתחילת הפוסט ואני עושה לו source לפני הבנייה.

מצד שני, היישום שלי עבד על הפעם הראשונה שם (וזה עוד client server…). זה אומר שהסבה של יישום מ־amd64 אל arm32 עבדה חלק מצד האפליקציה והיו לי רק בעיות build system פשוטות (שלקחו לי כמעט שעתיים…). כן, גוגל עשו פאקים ב־NDK, אבל בגדול, מגניב 🙂

עוד משהו שלמדתי מחדש, כמה חשוב זה לעשות out of source builds. ככה אני יכול באותו זמן לבנות את היישום לשתי פלטפורמות שונות בקלות.

Share Button

חצי שנה עם האנדרויד – חלק 3 – cyanogenmod

לפני כמה שבועות דיברתי על אנרדויד וכמה הפצות שלו. אמרתי שאני לא מתחבר אל אף אחת מההפצות הללו ואני משתמש באחרת. בפוסט זה אני אציג את ההפצה שאני משתמש בה – cyanogenmod. בגדול – זאת הפצה חופשית (בסגון – קוד פתוח ותוכנה חופשית, לא רק חינמית או כביכול“).

ההפצה הזאת מבוססת על הקוד החופשי שגוגל משחררים עבור ה־Nexus one, שעברה התאמות מרובות ויש בימינו התקנות עבור רב מכשירי האנדרויד שקיימים בשוק. לא רק שמדובר בתוכנה חופשית אמיתית אלא שיש אנשים טובים שמתקנים אותה ומשפצים כל יום. המתכנתים של ההפצה הזאת גם מסבים את ההפצה אל מכשירים ישנים – זה אומר שגם מכשירים ישנים מאוד יכולים להריץ אנדרויד 2.3.7.

בין הדברים שהכי אהבתי בהפצה הזאת:

הלוגו של מסך הטעינה הוא הכי יפה שראיתי וגם מכיל אנימציה יפה.

כשנועלים את המסך – יש מין אפקט של טלויזיה ישנה שנכבית. ממש מגניב.

  1. אפקט של גלילת יתר (כשמושכים רשימות יותר מדי למעלה או למטה) הוא צבע רקע ממש מגניב.

  2. הוא מאוד מינימליסטי – בניגוד לשאר ההפצות זה מכיל את המינימום שבמינימום. ההפצה כולה שוקלת בערך 95 מגה.

  3. יש בניות ליליות (ראה גם http://haharoni.wordpress.com/2011/11/01/leilit-02/ וגם http://haharoni.wordpress.com/2011/10/31/leilit/). אני השתמשתי בהן במשך כמה חודשים.

  4. ההפצה מאוד חסכונית בסוללה. השיא שלי היה 72 שעות באחת מהבניות הליליות הראשונות. כעת אני יכול להגיע ליותר מיממה שלמה (אם אני מכבה 3G בעבודה, שם זה טוחן סללה).

  5. ההפצה כנראה תיתמך לעולם ועוד. סיבה טובה לשמור על המכשיר שלי 🙂

מצד שני, לא הכל דבש:

  1. הייתה תקופה שבה השרתים של kernel.org היה למטה ולא היו גרסאות ליליות. אם המכשיר שלך אין לו עוד גרסה יציבה (או שאתה הרפתקאן) אתה בצרות (הייתי לי גרסה שזללה סוללה בדיוק באותה תקופה – שמונה שעות והסוללה נגמרה)

  2. הייתה תקופה די ארוכה שבה המכשיר היה קורס בזמן הורדה מהאינטרנט (וזה אומר למעשה שה־market לא באמת עובד). אצלי זה מסתדר עם הזמן

  3. חלק מהיישומים שבאים עם ה־ROM הזה פחות צבעוניים מאלו שמגיעות עם זה ה־ROM של Samsung למשל (היישום של המצלמה נוצץ וצבעוני, אין יישום לטיימר/סטופר אך יש אלטרנטיבות טובות ב־market).
  4. האם באמת יש אבא להפצה הזאת?” כשיש בעיות, אצל מי בדיוק תלונן? אני מניח שאת השאלה הזאת אפשר לשאול גם בהפצות GNU/Linux, אבל פה השאלה היא יותר מורכבת.

אני ממליץ בחום על ההפצה למי שיש לו מכשיר נתמך ויש לו גרסה יציבה. ומי שלא, ומוכן לעדכן את הגרסה בכל יום (תהליך פשוט מאוד אני הייתי עושה את זה תוך כדי שיחה עם אנשים) – שוב מומלץ. אני זוכר את הגרסה הראשונה שהתקנתי (בנייה מספר 13) את הבנייה הראשונה שבה ה־bluetooth הפסיק לעבוד (בנייה 37) כשהוא חזר לעבוד (בנייה 42), כש־sdcard החיצוני התחיל לעבוד (בערך 70), כשבעת הודעה המקשים החיצוניים התחילו להאיר (בערך 110, לא זוכר בדיוק).

כרגע אני משתמש בגרסה יציבה 7.1 במכשיר GalaxyS. בעלי GalaxyII – אין עוד גרסאות יציבות – אבל לפי דעתי הבניות הליליות יהיו מספיק טובות לשימוש יום יומי. שאר המכשירים – תסתכלו בווקי של האתר וברשימת המכשירים.

Share Button