Android 編程必看的十個建議

來源:互聯網
上載者:User

 

  A:成為一名真正的Android高手必須掌握和遵循的一些準則:
  1)學會懶惰
  aDon't Reinvent the Wheel(不要重複發明輪子)。
  bInventing the Wheel(發明輪子)。
  cDon't Reinvent the Wheel(不要重複發明輪子)。
  “輪子理論”,也即“不要重複發明輪子”,這是西方國家的一句諺語,原話是:Don't Reinvent the Wheel。“不要重複發明輪子 ”意思是企業中任何一項工作實際上都有人做過,我們所需要做的就是找到做過這件事情的人。拿到軟體領域中就是指有的項目或功能,別人已經做過,我們需要用的時候,直接拿來用即可,而不要重新製造。
  2)精通Android體系架構、MVC、常見的設計模式、控制反轉(IoC)
  3)編寫可重用、可擴充、可維護、靈活性高的代碼
  4)高效的編寫高效的代碼
  5)學會至少一門伺服器端開發技術

JNI是什麼?

  A:JNI是Java Native Interface的縮寫,中文為JAVA本地調用。從Java1.1開始,Java Native Interface(JNI)標準成為java平台的一部分,它允許Java代碼和其他語言寫的代碼進行互動。JNI一開始是為了本地已編譯語言,尤其是 C和C++而設計的,但是它並不妨礙你使用其他語言,只要呼叫慣例受支援就可以了。

  使用java與本地已編譯的代碼互動,通常會喪失平台可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的,比如,使用一些舊的庫,與硬體、作業系統進行互動,或者為了提高程式的效能。JNI標準至少保證本地代碼能工作在任何JAVA 虛擬機器實現下。

Android和Linux的區別?

  A:Android是一個專門針對行動裝置的軟體集,包括一個作業系統,中介軟體和一些重要的應用程式。Android SDK 提供了在Android平台使用java語言進行android 應用程式開發必須的工具和API介面。Android 系統架構除了Linux2.6核心之外,還提供了豐富的lib和適用於java的運行時環境(很重要的一點是Dalvik虛擬機器,類似於JVM)、應用程式架構和核心應用。在此基礎之上可以快速開發應用程式。

  linux核心像是核心支援人員,而google 將其商業化於行動裝置上。android上開發應用程式和Windows MFC開發有些類似。

SDK升級了,如何更新SDK?

  A:更新SDK是非常棘手的。當一個新的SDK發布,必須是plugin也發布。更新容易出現的錯誤是兩個版本都存在,而且都不正常。最終不得不卸載了它們並且重新安裝最新的一個。然後那個最新的SDK工作正常了。建議任何面對SDK或者plugin升級的人都採用相同的過程。簡單的卸載老版本,然後安裝新版本。不要升級。

如何進入Recovery模式

  A:每部Android裝置進入Recovery模式的方法不同。以Milestone為例:若bootloader為90.78,按住鍵盤的“X”鍵,再按電源鍵開機,看到moto的經典logo即可放開此2鍵。等待出現一個三角形表徵圖,然後按住音量向上鍵+輕按拍照鍵,會出現四個選項。放開按鍵,可以用方向鍵選擇一個選項。作用分別為重啟,應用update.zip,清除所有資料至出廠狀態、清除cache。

Android bionic移植需要注意的事項

  A:下面通過一個例子來說明移植binic需要做的事情(BIONIC使用的核心標頭檔從2.6.29 升級到 2.6.31):
  1)修改之前,先要備份 android/bionic
  2)按照下面方法複製linux kernel v2.6.31 標頭檔:
  複製 include/asm-generic 到 bionic/libc/kernel/original folder
  複製 include/linux 到 bionic/libc/kernel/original folder
  複製 include/mtd 到 bionic/libc/kernel/original folder
  3)運行 tools/update_all.py 指令碼,產生新的標頭檔,方法如下.
  $ cd android/bionic/libc/kernel
  $ tools/update_all.py
  以上的操作將複製新的標頭檔到 bionic/libc/kernel/common 目錄
  4)刪除 bionic/libc/kernel/original 目錄
  5)複製平台相關的標頭檔:
  複製 linux v2.6.31 平台相關的 asm 目錄到指定的路徑,方法如下:
  複製 arch/arm/include/asm 到 android/bionic/libc/kernel/arch-arm/
  複製 arch/x86/include/asm 到 android/bionic/libc/kernel/arch-x86/
  6)從 v2.6.29 bionic/libc/kernel/common/linux 複製一下的標頭檔到新的 android/bionic/libc/kernel/common/linux 目錄:
  android-alarm.h
  android-pmem.h
  android_power.h
  ashmem.h
  binder.h
  msm_adsp.h
  msm_audio.h
  msm_mdp.h
  keychord.h
  7)編譯
  $ cd android
  $ make -j4

Android源碼下vendor目錄下檔案的作用?

  A:指的是某些公司的產品型號,主要是一些針對硬體設定的東西,比如radio 方面的,若是採用TI 的,這裡面會有TI提供的一些RIL方面的介面等。

編譯Android源碼和編譯Android核心有什麼區別?

  A:其實沒什麼區別,就多了幾個android特有的驅動,最重要的是binder

如何擷取手機和儲存卡上的圖片?

java代碼:

/**

* 通過uri擷取檔案的絕對路徑

* @param uri

* @return

*/

protected String getAbsoluteImagePath(Uri uri)

{

 

// can post image

String [] proj={MediaStore.Images.Media.DATA};

Cursor cursor = managedQuery( uri,proj, // Which columns to return

null, // WHERE clause; which rows to return (all rows)

null, // WHERE clause selection arguments (none)

null); // Order-by clause (ascending by name)

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

return cursor.getString(column_index);

}
複製代碼
如何使用雙緩衝?

  A:系統自身已經實現了雙緩衝,也就是說為了避免重影,必須連續onDraw兩次,或者是對上一次onDraw裡面畫髒的部分進行修複。

  執行Bitmap.createBitmap函數一般要花銷100-300ms的時間,要想提高它的效率,只能祈禱google能把android的代碼寫得更高效一些了。

文章來自: 安卓手機網(www.anzhuopp.com) 詳文參考:http://www.anzhuopp.com/Androidshouji/3032/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.