當前位置:首頁 » 安卓系統 » android題庫

android題庫

發布時間: 2022-08-15 12:09:56

㈠ android 面試題

1、前言 
  6 月  26  日,  Google Android  發布了  NDK  ,引起了很多發人員的興趣。  NDK  全
稱:   Native  Development  Kit  。下載地址為: 
http://developer.android.com/sdk/ndk/1.5_r1/index.html  。 
2、誤解 
  新出生的事物,除了驚喜外,也會給我們帶來一定的迷惑、誤解。 
2.1、誤解一:  NDK  發布之前,  Android  不支持進行  C  開發 
  在 Google  中搜索  「NDK」  ,很多  「Android  終於可以使用  C++  開發  」  之類
的標題,這是一種對  Android  平台編程方式的誤解。其實,  Android  平台從誕生起,就已
經支持  C  、   C++  開發。眾所周知,   Android  的  SDK  基於  java  實現, 這意味著基於  Android 
SDK  進行開發的第三方應用都必須使用  Java  語言。但這並不等同於 「  第三方應用只能使
用  Java」  。在  Android  SDK  首次發布時,  Google  就宣稱其虛擬機  Dalvik  支持  JNI  編程
方式,也就是第三方應用完全可以通過  JNI  調用自己的  C  動態庫,即在  Android  平台上,  
「Java+C」  的編程方式是一直都可以實現的。 
  當然這種誤解的產生是有根源的:在 Android SDK  文檔里,找不到任何  JNI  方面的
幫助。即使第三方應用開發者使用  JNI  完成了自己的  C  動態鏈接庫(  so  )開發,但是  so 
如何和應用程序一起打包成  apk  並發布?這裡面也存在技術障礙。我曾經花了不少時間,
安裝交叉編譯器創建  so  ,並通過  asset (資源)方式,實現捆綁  so  發布。但這種方式只
能屬於取巧的方式,並非官方支持。所以,在  NDK  出來之前,我們將  「Java+C」  的開發
模式稱之為灰色模式,即官方既不聲明 「  支持這種方式  」  ,也不聲明 「  不支持這種方
式  」  。 
2.2、誤解二:有了  NDK  ,我們可以使用純  C  開發  Android  應用 
  Android SDK 採用  Java  語言發布,把眾多的  C  開發人員排除在第三方應用開發外
(  注意:我們所有討論都是基於「  第三方應用開發  」  ,  Android  系統基於  Linux  ,系
統級別的開發肯定是支持  C  語言的。   )。 NDK  的發布,許多人會誤以為,類似於  Symbian  、 
WM  ,在  Android  平台上終於可以使用純  C  、  C++  開發第三方應用了!其實不然,  NDK 
文檔明確說明:  it is not a good way  。因為  NDK  並沒有提供各種系統事件處理支持,也沒
有提供應用程序生命周期維護。此外,在本次發布的  NDK  中,應用程序  UI  方面的  API  也
沒有提供。至少目前來說,使用純  C  、  C++  開發一個完整應用的條件還不完備。 
 
3、NDK  是什麼 
 
對 NDK  進行了粗略的研究後,我對  「NDK  是什麼  」  的理解如下: 
 
1、NDK  是一系列工具的集合。 
 
NDK 提供了一系列的工具,幫助開發者快速開發  C  (或  C++  )的動態庫,並能自動
將  so  和  java  應用一起打包成  apk  。這些工具對開發者的幫助是巨大的。 
NDK 集成了交叉編譯器,並提供了相應的  mk  文件隔離  CPU  、平台、  ABI  等差異,
開發人員只需要簡單修改  mk  文件(指出 「  哪些文件需要編譯  」  、 「  編譯特性要求  」 
等),就可以創建出  so  。 
NDK 可以自動地將  so  和  Java  應用一起打包,極大地減輕了開發人員的打包工作。 
2、NDK  提供了一份穩定、功能有限的  API  頭文件聲明。
 
  oogle 明確聲明該  API  是穩定的,在後續所有版本中都穩定支持當前發布的  API  。
從該版本的  NDK  中看出,這些  API  支持的功能非常有限,包含有:  C  標准庫(  libc  )、
標准數學庫(  libm  )、壓縮庫(  libz  )、  Log  庫(  liblog  )。 
G
 
4、NDK  帶來什麼 
 
1、NDK  的發布,使  「Java+C」  的開發方式終於轉正,成為官方支持的開發方式。 
使用 NDK  ,我們可以將要求高性能的應用邏輯使用  C  開發,從而提高應用程序的執
行效率。 
使用 NDK  ,我們可以將需要保密的應用邏輯使用  C  開發。畢竟,  Java  包都是可以反
編譯的。 
NDK 促使專業  so  組件商的出現。(樂觀猜想,要視乎  Android  用戶的數量) 
2、NDK  將是  Android  平台支持  C  開發的開端。 
  NDK 提供了的開發工具集合,使開發人員可以便捷地開發、發布  C  組件。同時,  
Google 承諾在  NDK  後續版本中提高  「  可調式  」  能力,即提供遠程的  gdb  工具,使我
們可以便捷地調試  C  源碼。在支持  Android  平台  C  開發,我們能感覺到  Google  花費了
很大精力,我們有理由憧憬 「C  組件支持  」  只是  Google Android  平台上 C  開發的開端。
畢竟,   C  程序員仍然是碼農陣營中的絕對主力,將這部分人排除在  Android  應用開發之外,
顯然是不利於  Android  平台繁榮昌盛的。

㈡ Android試題

6是C 10應該是B

㈢ 《Android從入門到精通》epub下載在線閱讀,求百度網盤雲資源

《Android從入門到精通》(明日科技)電子書網盤下載免費在線閱讀

資源鏈接:

鏈接:

密碼:gyow

書名:Android從入門到精通

作者:明日科技

豆瓣評分:5.3

出版社:清華大學出版社

出版年份:2012-9-1

頁數:507

內容簡介:

內 容 簡 介

《Android從入門到精通》從初學者的角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了Android應用程序開發應該掌握的各方面技術。全書共分15章,內容包括Android快速入門、Android模擬器與常用命令、用戶界面設計、高級用戶界面設計、基本程序單元Activity、Android應用核心Intent、Android事件處理、資源訪問、圖形圖像處理技術、多媒體應用開發、Content Provider實現數據共享線程與消息處理、Service應用、網路編程及Internet應用和基於Android的家庭理財通。所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的注釋,可以使讀者輕松領會Android應用程序開發的精髓,快速提高開發技能。另外,本書除了紙質內容之外,配書光碟中還給出了海量開發資源庫,主要內容如下:

 語音視頻講解:總時長25小時,共62段  技術資源庫:600頁專業參考文檔

 實例資源庫:436個經典實例  面試資源庫:369道面試真題

 能力測試題庫:138道能力測試題目  PPT電子教案

本書適合作為軟體開發入門者的自學用書,也適合作為高等院校相關專業的教學參考書,也可供開發人員查閱、參考。

㈣ Android 的一些答題類的app,裡面的問題及相關的數據在資料庫里是怎樣存儲

SQLite,輕量級資料庫,一張表存儲題目以及正確答案選項以及解析,一張表存儲所有題目選項,用題目id作為外鍵。具體結構可以參考系統簡訊資料庫。

㈤ android中ui怎麼實現選擇題代碼

1、 Android的四大組件是哪些,它們的作用?
答:Activity:Activity是Android程序與用戶交互的窗口,是Android構造塊中最基本的一種,它需要為保持各界面的狀態,做很多持久化的事情,妥善管理生命周期以及一些跳轉邏輯
service:後台服務於Activity,封裝有一個完整的功能邏輯實現,接受上層指令,完成相關的食物,定義好需要接受的Intent提供同步和非同步的介面
Content Provider:是Android提供的第三方應用數據的訪問方案,可以派生Content Provider類,對外提供數據,可以像資料庫一樣進行選擇排序,屏蔽內部數據的存儲細節,向外提供統一的借口模型,大大簡化上層應用,對數據的整合提供了更方便的途徑
BroadCast Receiver:接受一種或者多種Intent作觸發事件,接受相關消息,做一些簡單處理,轉換成一條Notification,統一了Android的事件廣播模型
2、 請介紹下Android中常用的五種布局。
常用五種布局方式,分別是:FrameLayout(框架布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)。
一、FrameLayout:所有東西依次都放在左上角,會重疊,這個布局比較簡單,也只能放一點比較簡單的東西。二、LinearLayout:線性布局,每一個LinearLayout裡面又可分為垂直布局(android:orientation=」vertical」)和水平布局(android:orientation=」horizontal」 )。當垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。三、AbsoluteLayout:絕對布局用X,Y坐標來指定元素的位置,這種布局方式也比較簡單,但是在屏幕旋轉時,往往會出問題,而且多個元素的時候,計算比較麻煩。四、RelativeLayout:相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:相對於某一個元素android:layout_below、 android:layout_toLeftOf相對於父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh;五、TableLayout:表格布局,每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素。每一個布局都有自己適合的方式,這五個布局元素可以相互嵌套應用,做出美觀的界面。
3、 android中的動畫有哪幾類,它們的特點和區別是什麼
答:兩種,一種是Tween動畫、還有一種是Frame動畫。Tween動畫,這種實現方式可以使視圖組件移動、放大、縮小以及產生透明度的變化;另一種Frame動畫,傳統的動畫方法,通過順序的播放排列好的圖片來實現,類似電影。
4、 android 中有哪幾種解析xml的類?官方推薦哪種?以及它們的原理和區別。
答:XML解析主要有三種方式,SAX、DOM、PULL。常規在PC上開發我們使用Dom相對輕鬆些,但一些性能敏感的資料庫或手機上還是主要採用SAX方式,SAX讀取是單向的,優點:不佔內存空間、解析屬性方便,但缺點就是對於套嵌多個分支來說處理不是很方便。而DOM方式會把整個XML文件載入到內存中去,這里Android開發網提醒大家該方法在查找方面可以和XPath很好的結合如果數據量不是很大推薦使用,而PULL常常用在J2ME對於節點處理比較好,類似SAX方式,同樣很節省內存,在J2ME中我們經常使用的KXML庫來解析。
5、 ListView的優化方案
答:1、如果自定義適配器,那麼在getView方法中要考慮方法傳進來的參數contentView是否為null,如果為null就創建contentView並返回,如果不為null則直接使用。在這個方法中盡可能少創建view。
2、給contentView設置tag(setTag()),傳入一個viewHolder對象,用於緩存要顯示的數據,可以達到圖像數據非同步載入的效果。
3、如果listview需要顯示的item很多,就要考慮分頁載入。比如一共要顯示100條或者更多的時候,我們可以考慮先載入20條,等用戶拉到列表底部的時候再去載入接下來的20條。
6、 請介紹下Android的數據存儲方式。
答:使用SharedPreferences存儲數據;文件存儲數據;SQLite資料庫存儲數據;使用ContentProvider存儲數據;網路存儲數據;
Preference,File, DataBase這三種方式分別對應的目錄是/data/data/Package Name/Shared_Pref, /data/data/Package Name/files, /data/data/Package Name/database 。
一:使用SharedPreferences存儲數據
首先說明SharedPreferences存儲方式,它是 Android提供的用來存儲一些簡單配置信息的一種機制,例如:登錄用戶的用戶名與密碼。其採用了Map數據結構來存儲數據,以鍵值的方式存儲,可以簡單的讀取與寫入,具體實例如下:
void ReadSharedPreferences(){
String strName,strPassword;
SharedPreferences user = getSharedPreferences(「user_info」,0);
strName = user.getString(「NAME」,」」);
strPassword = user getString(「PASSWORD」,」」);
}
void WriteSharedPreferences(String strName,String strPassword){
SharedPreferences user = getSharedPreferences(「user_info」,0);
uer.edit();
user.putString(「NAME」, strName);
user.putString(「PASSWORD」 ,strPassword);
user.commit();
}

熱點內容
中國電腦伺服器的發展 發布:2024-10-18 12:31:38 瀏覽:777
ktv系統源碼 發布:2024-10-18 12:26:45 瀏覽:508
阿克蘇哪裡有開密碼箱 發布:2024-10-18 12:26:00 瀏覽:282
如何使用伺服器跑自己的軟體 發布:2024-10-18 12:22:28 瀏覽:799
電腦怎樣編程 發布:2024-10-18 12:06:55 瀏覽:528
圖的鄰接表存儲及遍歷 發布:2024-10-18 12:02:31 瀏覽:495
如何查詢電腦型號的配置 發布:2024-10-18 11:57:42 瀏覽:273
如何開張一個租賃伺服器 發布:2024-10-18 11:46:13 瀏覽:826
python解析json文件 發布:2024-10-18 11:29:34 瀏覽:311
編譯程序的生成程序 發布:2024-10-18 11:29:27 瀏覽:404