android項目
Ⅰ 怎樣新建Android項目及開發
創建一個新項目是很簡單的,只要安裝了Eclipse插件,並且你的Eclipse軟體版本在3.2或3.3,你就可以開始開發了。
創建"Hello, World"程序從高級層面上步驟:
1, 通過 File -> New -> Project 菜單,建立新項目"Android Project";
2, 填寫新項目各種參數;
3, 編輯自動生成的代碼模板;
需要提醒的是新版Android工程新建完成之後,會多出一個名為appcompat_v7的工程,它是Google自己的一個兼容包,就是一個支持庫。
Ⅱ 怎麼將這個Android項目跑起來
1、Android的文件系統結構是怎樣的,我們安裝的程序放在那裡
編譯Android源碼之後,在out/target/proct/generic一些文件:
ramdisk.img、system.img、userdata.img、 system、 data、root
其中, system.img是由 system打包壓縮得到的, userdata.img是由 data打包壓縮得到的。
ramdisk.img是模擬器的文件系統,把ramdisk.img解壓出來可知道,ramdisk.img里的文件跟root文件夾的文件基本一樣。模擬器裝載ramdisk.img並解壓到內存,接著分別把system.img和userdata.img掛載到 ramdisk下的system和data目錄。我們編譯出來的應用程序就是放在system/app下的。用戶安裝的程序則是放在data/app下。
2、Android SDK和android源碼能為我們提供什麼工具
AndroidSDK提供有很多工具,如adb,ddms,emulator,aapt等,並提供kernel-qemu、ramdisk.img、system.img、userdata.img。因此,只要有android SDK,我們就可以在模擬器上把android跑起來。
Android源碼可以編譯出android SDK、adb等工具、android文件系統,以及ADT插件,也就是說,我們可以從android源碼編譯出所有android相關的東西。
Ⅲ android項目版本兼容問題
在androidmanifest.xml中修改相關代碼:
<uses-sdk
android:minSdkVersion="9"//最小版本
android:targetSdkVersion="17"/>//最大版本
也可以右鍵項目,選擇properties,第二個選項android,右邊可以選擇對應的版本,這兩種方式實質上是一樣的
Ⅳ Android項目的軟體環境是什麼 硬體環境是什麼
軟體:
早期的Eclipse + ADT + Java jdk + Android SDK
現在的Android Studio +Java jdk + Android SDK
硬體:
模擬器,手機真機唄
Ⅳ 如何快速看懂一個Android項目
我個人做法:
安裝App 使用各個功能
查看項目分包結構
查看AndroidManifest.xml(看有哪些Activity)
查看布局xml、Activity
看看其他的細分
Ⅵ android一個項目怎麼跳轉到另一個項目中去
這個其實很簡單,我把核心的幾行代碼發給你,應該很容易理解;
PackageManager packageManager = getPackageManager();
Intent intent=new Intent();
intent =packageManager.getLaunchIntentForPackage("pkgName");
主要就是一個Intent跳轉.
Ⅶ android項目怎麼注冊activity
1、打開AndroidManifest.xml文件
2、在application節點間插入
<activity android:name="com.example.testand.MainActivity"/>
com.example.testand.MainActivity是activity在工程中的路徑。這是最簡單的一個注冊
其他activity中可選用屬性有:
<activity android:allowTaskReparenting=["true" | "false"]
android:alwaysRetainTaskState=["true" | "false"]
android:clearTaskOnLaunch=["true" | "false"]
android:configChanges=["mcc", "mnc", "locale",
"touchscreen", "keyboard", "keyboardHidden",
"navigation", "orientation", "screenLayout",
"fontScale", "uiMode"]
android:enabled=["true" | "false"]
android:excludeFromRecents=["true" | "false"]
android:exported=["true" | "false"]
android:finishOnTaskLaunch=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:launchMode=["multiple" | "singleTop" |
"singleTask" | "singleInstance"]
android:multiprocess=["true" | "false"]
android:name="string"
android:noHistory=["true" | "false"]
android:permission="string"
android:process="string"
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nosensor"]
android:stateNotNeeded=["true" | "false"]
android:taskAffinity="string"
android:theme="resource or theme"
android:windowSoftInputMode=["stateUnspecified",
"stateUnchanged", "stateHidden",
"stateAlwaysHidden", "stateVisible",
"stateAlwaysVisible", "adjustUnspecified",
"adjustResize", "adjustPan"] >
</activity>
(註:有些在application中重復的就不多闡述了)
1、android:alwaysRetainTaskState
是否保留狀態不變, 比如切換回home, 再從新打開,activity處於最後的狀態。比如一個瀏覽器擁有很多狀態(當打開了多個TAB的時候),用戶並不希望丟失這些狀態時,此時可將此屬性設置為true
2、android:clearTaskOnLaunch
比如 P 是 activity, Q 是被P 觸發的 activity, 然後返回Home, 重新啟動 P,是否顯示 Q
3、android:configChanges
當配置list發生修改時, 是否調用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
這個我用過,主要用來看手機方向改變的. android手機在旋轉後,layout會重新布局, 如何做到呢?
正常情況下. 如果手機旋轉了.當前Activity後殺掉,然後根據方向重新載入這個Activity. 就會從onCreate開始重新載入.
如果你設置了 這個選項, 當手機旋轉後,當前Activity之後調用onConfigurationChanged() 方法. 而不跑onCreate方法等.
4、android:excludeFromRecents
是否可被顯示在最近打開的activity列表裡,默認是false
5、android:finishOnTaskLaunch
當用戶重新啟動這個任務的時候,是否關閉已打開的activity,默認是false
如果這個屬性和allowTaskReparenting都是true,這個屬性就是王牌。Activity的親和力將被忽略。該Activity已經被摧毀並非re-parented
6、android:launchMode(Activity載入模式)
在多Activity開發中,有可能是自己應用之間的Activity跳轉,或者夾帶其他應用的可復用Activity。可能會希望跳轉到原來某個Activity實例,而不是產生大量重復的Activity。這需要為Activity配置特定的載入模式,而不是使用默認的載入模式
Activity有四種載入模式:
standard、singleTop、singleTask、singleInstance(其中前兩個是一組、後兩個是一組),默認為standard
standard:就是intent將發送給新的實例,所以每次跳轉都會生成新的activity。
singleTop:也是發送新的實例,但不同standard的一點是,在請求的Activity正好位於棧頂時(配置成singleTop的Activity),不會構造新的實例
singleTask:和後面的singleInstance都只創建一個實例,當intent到來,需要創建設置為singleTask的Activity的時候,系統會檢查棧裡面是否已經有該Activity的實例。如果有直接將intent發送給它。
singleInstance:
首先說明一下task這個概念,Task可以認為是一個棧,可放入多個Activity。比如啟動一個應用,那麼Android就創建了一個Task,然後啟動這個應用的入口Activity,那在它的界面上調用其他的Activity也只是在這個task裡面。那如果在多個task中共享一個Activity的話怎麼辦呢。舉個例來說,如果開啟一個導游服務類的應用程序,裡面有個Activity是開啟GOOGLE地圖的,當按下home鍵退回到主菜單又啟動GOOGLE地圖的應用時,顯示的就是剛才的地圖,實際上是同一個Activity,實際上這就引入了singleInstance。singleInstance模式就是將該Activity單獨放入一個棧中,這樣這個棧中只有這一個Activity,不同應用的intent都由這個Activity接收和展示,這樣就做到了共享。當然前提是這些應用都沒有被銷毀,所以剛才是按下的HOME鍵,如果按下了返回鍵,則無效
7、android:multiprocess
是否允許多進程,默認是false
具體可看該篇文章:http://www.bangchui.org/simple/?t3181.html
8、android:noHistory
當用戶從Activity上離開並且它在屏幕上不再可見時,Activity是否從Activity stack中清除並結束。默認是false。Activity不會留下歷史痕跡
9、android:screenOrientation
activity顯示的模式
默認為unspecified:由系統自動判斷顯示方向
landscape橫屏模式,寬度比高度大
portrait豎屏模式, 高度比寬度大
user模式,用戶當前首選的方向
behind模式:和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
sensor模式:有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換
nosensor模式:忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了
10、android:stateNotNeeded
activity被銷毀或者成功重啟時是否保存狀態
11、android:windowSoftInputMode
activity主窗口與軟鍵盤的交互模式,可以用來避免輸入法面板遮擋問題,Android1.5後的一個新特性。
這個屬性能影響兩件事情:
【A】當有焦點產生時,軟鍵盤是隱藏還是顯示
【B】是否減少活動主窗口大小以便騰出空間放軟鍵盤
各值的含義:
【A】stateUnspecified:軟鍵盤的狀態並沒有指定,系統將選擇一個合適的狀態或依賴於主題的設置
【B】stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity里的狀態,無論是隱藏還是顯示
【C】stateHidden:用戶選擇activity時,軟鍵盤總是被隱藏
【D】stateAlwaysHidden:當該Activity主窗口獲取焦點時,軟鍵盤也總是被隱藏的
【E】stateVisible:軟鍵盤通常是可見的
【F】stateAlwaysVisible:用戶選擇activity時,軟鍵盤總是顯示的狀態
【G】adjustUnspecified:默認設置,通常由系統自行決定是隱藏還是顯示
【H】adjustResize:該Activity總是調整屏幕的大小以便留出軟鍵盤的空間
【I】adjustPan:當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分
Ⅷ Android項目中你感覺最有成就的是什麼
我覺得不管什麼項目, 最有成就的事就是自己開發出來的東西用的人多,並且還是真心喜歡用。對自己的能力來講, android開源東西很多, 能夠通過閱讀別人的代碼能增加自己的知識儲備和提高技術能力,經常會發現,原來還可以這樣呀的感慨。