方法/步驟
1
首先看看剛創建完的項目界面,除了菜單欄、工具欄等,沒有什麼可以編輯的界面
2
通過項目的文件瀏覽器可以打開所有項目文件,所以文件管理器在整個開發過程中相當重要。
其中用到最多的便是app項,其餘大部分是軟體自動執行或生成相關文件;
External libraries用來保存外部導入的類庫,用到的時候可以進行調用。
3
在app項下麵包含了項目創建所需的資源和配置文件:
首先打開layout,在src-》main-》res-》layout下,這是安卓app的界面設計文件,所有的界面都可以通過這里的xml文件生成
4
雙擊xml文件打開設計界面,關於layout的具體設計以後再講,這里僅介紹如何打開layout。
5
項目的菜單設計在menu項下的xml文件中定義和設計。
6
字元串文件也是項目中重要的文件,在app開發過程中會用到很多字元串數據,建議大家都在strings.xml中定義好以後再調用,這樣在漢化或者轉化為他國語言時,只要備份strings.xml文件,然後替換成中文或他國文字就可以了。其實這就是其他國家軟體漢化成中文的途徑。
步驟閱讀
7
軟體圖標的設計也是非常重要的,這就是UI設計的目的所在,所有圖片文件都應保存在drawable-xxxx文件下
8
另外一個重要文件就是AndroidManifest.xml,這里定義了項目的打包名稱;項目的標題、主題、圖標以及所有的活動項,各種訪問許可權的設置等等都在這里設置。
9
接下來是安卓開發最重要的部分,活動程序的編寫部分,所有app都至少包含一個activity,這里用來實現app所需的功能,完成功能代碼的編寫,這里可以調用其他文件中定義的資源對界面進行訪問,對接收器或發生器進行讀寫等等
10
最後講講R文件,R文件在app->build->source->r->debug下的第二個文件夾下,用來存放所有activity、layout、控制項等資源的定義,這是軟體自動生成的,不需要修改也不允許修改,在編程過程中一般通過R.id.xxx來訪問資源。
END
注意事項
R文件不需要修改
字元串數據最後都保存在strings.xml文件中
⑵ 安卓軟體開發,這些小方塊是button按鈕嗎上面的字存在哪個文件夾里啊怎麼在字元串文件夾里找不到啊
安卓的控制項text屬性可以在string.xml裡面定義然後引用,也可以直接在布局文件中控制項的定義那裡寫,還可以在程序代碼裡面指定。。。。
⑶ eclipse的安卓項目中 在 values下的string文件中添加一個 string字元串後
保存也不一定有用的。關鍵要編譯一次,因為java是解釋式的語言,而安卓定義的字元串等都會在解釋一次後自動編譯到gen里,通常你所用做的就是稍等片刻待它解釋完,等不及就編譯一次。
⑷ 安卓手機根目錄下的各個文件夾有什麼作用
作用:
1.res:資源文件。
2.drawable:布局文件。
3.layout:布局文件。
4.anim:動畫效果文件。
5.values:取值、字元串等。
6.src:代碼,至於src內部的目錄名稱,取決於具體項目結構。
7.libs:庫文件。
⑸ android字元串資源文件在哪個目錄
Android 提供三種類型的字元串資源。
String 提供一個單獨的字元串
String Array 提供一個字元串數組
Quantity Strings(Plurals) 為不同的數量提供不同的字元串適配
String
一個單獨的字元串,定義在xml文件里,可以供 layout xml 引用,也可以供 Java 讀取。一般默認的,在 res/values/strings.xml 里可以定義 <string name="helloworld">Hello World</string>。下面是一個完整的 xml 內容。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="string_name">text_string</string>
</resources>
其中的 name 對應的就是 key,每個字元串都需要有一個單獨的 key 。必須單獨的,如果有重復的,編譯器可能不會報錯,但是運行的時候,可能會讀不到你想要的內容。這個就不用深入解釋了,理所應當的,key 必須唯一,沒啥好商量的。但是 xml 文件可以有多個。很多人喜歡把所以的字元串都放在 strings.xml 里。這是開發工具默認幫你生成的。但是隨著項目的持續開發,項目越來越大的時候,我還是建議可以分成多個文件的。這樣有利於代碼的閱讀,而且不會影響運行的效率,多出來的工作在編譯的時候已經做好了。
使用方法:
在layout xml 里使用,例如
<TextView android:text="@string/helloworld"/>
或者在 Java code 里使用
String string = getString(R.string.helloworld);
getString(int) 和 getText(int) 都可以返回字元串內容,不同的是 getText(int) 可以返回富文本(rich text)字元串。富文本就是加粗啊,斜體啊之類的簡單的樣式,下面會說。
String Array
字元串數組,可以定義在 strings.xml 里,也可以定義在其他的 xml 里。
<string-array name="string_array_name">
<item>text_string</item>
</string-array>
一個 string-array 里可以有 N 多個 item。同樣,name 也必須唯一。item 可以是一個字元串,也可以是另外一個字元串的引用。使用:
Resources res = getResources();
String[] strings = res.getStringArray(R.array.string_array_name);
這樣就得到了一個字元串數組了。
Quantity Strings(Plurals)
帶數量的字元串。在很多語言里,不同的數量的文字的表達方式有些不同。比如在英文里,一本書表示為 one book . 兩本書表示為 two books 。在單詞上,或者在語法上,就有很多的不一樣的地方,這樣一個字元串就可能搞不定了。
這個時候 Quantity Strings 就可以幫你搞定這個問題。
語法是這樣子的:
<resources>
<plurals name="plural_name">
<item quantity=["zero" | "one" | "two" | "few" | "many" | "other"] >text_string</item>
</plurals>
</resources>
name 也就是 ID,唯一,不廢話
item 可以有多個,每個 item 都有 quantity 屬性,每個 item 的 quantity 屬性不能一樣。
zero 表示沒有;one 表示一個,單數;two 表示兩個,或者一對,一雙;few:表示很少;many:表示挺多的;other:表示其他。
使用:
int count = getNumberOfsongsAvailable();
Resources res = getResources();
String songsFound = res.getQuantityString(R.plurals.numberOfSongsAvailable, count, count);
⑹ 與Android應用程序相關的文件目錄都有哪些
在搭建Android開發環境及簡單地建立一個HelloWorld項目後,本篇將通過HelloWorld項目來介紹Android項目的目錄結構。本文的主要主題如下:
1、HelloWorld項目的目錄結構
1.1、src文件夾
1.2、gen文件夾
1.3、Android 2.1文件夾
1.4、assets
1.5、res文件夾
1.6、AndroidManifest.xml
1.7、default.properties
圖1、HelloWorld項目目錄結構
下面將分節介紹上面的各級目錄結構。
1.1、src文件夾
顧名思義(src, source code)該文件夾是放項目的源代碼的。打開HelloWorld.java文件會看到如下代碼:
package helloworld.test; import android.app.Activity; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
可以知道:我們新建一個簡單的HelloWorld項目,系統為我們生成了一個HelloWorld.java文 件。他導入了兩個類android.app.Activity和android.os.Bundle,HelloWorld類繼承自Activity且重 寫了onCreate方法。
以下說明針對沒有學過Java或者Java基礎薄弱的人
@Override
在重寫父類的onCreate時,在方法前面加上@Override 系統可以幫你檢查方法的正確性。
例如,public void onCreate(Bundle savedInstanceState){…….}這種寫法是正確的,
如果你寫成public void oncreate(Bundle savedInstanceState){…….}這樣編譯器回報如下錯誤——
The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,
以確保你正確重寫onCreate方法。(因為oncreate應該為onCreate)
而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認為你新定義了一個方法oncreate。
android.app.Activity類:因為幾乎所有的活動 (activities)都是與用戶交互的,所以Activity類關注創建窗口,你可以用方法setContentView(View)將自己的UI放 到裡面。然而活動通常以全屏的方式展示給用戶,也可以以浮動窗口或嵌入在另外一個活動中。有兩個方法是幾乎所有的Activity子類都實現的:
onCreate(Bundle): 初始化你的活動(Activity),比如完成一些圖形的繪制。最重要的是,在這個方法里你通常將用布局資源(layout resource)調用setContentView(int)方法定義你的UI,和用findViewById(int)在你的UI中檢索你需要編程地 交互的小部件(widgets)。setContentView指定由哪個文件指定布局(main.xml),可以將這個界面顯示出來,然後我們進行相關 操作,我們的操作會被包裝成為一個意圖,然後這個意圖對應有相關的activity進行處理。
onPause():處理當離開你的活動時要做的事情。最重要的是,用戶做的所有改變應該在這里提交(通常ContentProvider保存數據)。
更多的關於Activity類的詳細信息此系列以後的文章將做介紹,如果你想了解更多請參閱相關文檔。
android.os.Bundle 類:從字元串值映射各種可打包的(Parcelable)類型(Bundle單詞就是捆綁的意思,所有這個類很好理解和記憶)。如該類提供了公有方法—— public boolean containKey(String key),如果給定的key包含在Bundle的映射中返回true,否則返回false。該類實現了Parceable和Cloneable介面,所以 它具有這兩者的特性。
1.2、gen文件夾
該 文件夾下面有個R.java文件,R.java是在建立項目時自動生成的,這個文件是只讀模式的,不能更改。R.java文件中定義了一個類——R,R類 中包含很多靜態類,且靜態類的名字都與res中的一個名字對應,即R類定義該項目所有資源的索引。看我們的HelloWorld項目是不是如此,如下圖:
圖2、R.java對應res
通過R.java我們可以很快地查找我們需要的資源,另外編繹器也會檢查R.java列表中的資源是否被使用到,沒有被使用到的資源不會編繹進軟體中,這樣可以減少應用在手機佔用的空間。
1.3、Android 2.1文件夾
該 文件夾下包含android.jar文件,這是一個Java 歸檔文件,其中包含構建應用程序所需的所有的Android SDK 庫(如Views、Controls)和APIs。通過android.jar將自己的應用程序綁定到Android SDK和Android Emulator,這允許你使用所有Android的庫和包,且使你的應用程序在適當的環境中調試。例如上面的HelloWorld.java源文件中 的:
import android.app.Activity; import android.os.Bundle;
這里兩行代碼就是從android.jar導入包。
1.4、assets
包含應用系統需要使用到的諸如mp3、視頻類的文件。
1.5、res文件夾
資源目錄,包含你項目中的資源文件並將編譯進應用程序。向此目錄添加資源時,會被R.java自動記錄。新建一個項目,res目錄下會有三個子目錄:drawabel、layout、values。
drawabel-?dpi:包含一些你的應用程序可以用的圖標文件(*.png、*.jpg)
layout:界面布局文件(main.xml)與WEB應用中的HTML類同,沒修改過的main.xml文件如下(HelloWorld的就沒有修改過):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
values:軟體上所需要顯示的各種文字。可以存放多個*.xml文件,還可以存放不同類型的數據。比如arrays.xml、colors.xml、dimens.xml、styles.xml
1.6、AndroidManifest.xml
項目的總配置文件,記錄應用中所使用的各種組件。這個文件列出了應用程序所提供的功能,在這個文件中,你可以指定應用程序使用到的服務(如電話服務、互聯網 服務、簡訊服務、GPS服務等等)。另外當你新添加一個Activity的時候,也需要在這個文件中進行相應配置,只有配置好後,才能調用此 Activity。AndroidManifest.xml將包含如下設置:application permissions、Activities、intent filters等。
HelloWorld項目的AndroidManifest.xml如下所示:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="helloworld.test" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloWorld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
關於AndroidManifest.xml現在就講這么多,此系列後面的文章將單獨詳細介紹。
1.7、 default.properties
記錄項目中所需要的環境信息,比如Android的版本等。
HelloWorld的default.properties文件代碼如下所示,代碼中的注釋已經把default.properties解釋得很清楚了:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
target=android-7
⑺ 安卓系統手機中文件放在哪個文件夾下
Android系統的開放,使其用戶可以自己查看系統和SD卡中的文件夾。就系統和SD卡中常見的目錄代表什麼意思,下面是一個較實用的總結:
一、SD卡中
1. /mnt/sdcard或者/sdcard這是Android手機中SD卡的文件夾路徑,其中/mnt/sdcard/是android 2.2或更高版本所使用的,而/sdcard是android 2.1或早期版本的存儲卡位置。
2. /mnt/sdcard/dcim或/sdcard/dcim這個DCIM文件夾是干什麼用的,這里提示大家,一般數碼相機都有DCIM文件夾,其中進入後Camera為手機攝像頭拍攝的照片或視頻存放位置。同時在DCIM文件夾中還有.thumbnails這個目錄,在Linux中開頭為「.」的文件夾就是開頭為「點」的文件夾是隱藏目錄,這裡面記錄著手機SD卡圖片的縮略圖。
3. /mnt/sdcard/LOST.DIR或/sdcard/LOST.DIR這個LOST.DIR為SD卡掃描時發現的丟失文件,裡面的文件用處不大,可以不用理會。
二、手機或平板電腦中
1. /system/app 這里是android手機rom中的系統應用存放地,如果有Root許可權可以將手機rom中自帶的應用刪除掉,這裡面一般包含一個apk文件和odex文件,大家注意文件名一一對應。
2. /data/data 這里是每個安裝過應用的用戶文件存儲位置,一般為設置文件、資料庫或臨時緩存文件,進入後以每個軟體的package name包名來命名。
3. /dev 這里是Linux系統常規文件夾,裡面的文件很多都是設備模擬的文件系統,一般用戶無需理會。
4. /system/fonts 這裡面保存著系統的字體,如果你有root許可權,可以往裡添加自己喜歡的字體,比如雅黑。
5. /system/framework 這里是android系統的框架,裡面保存著系統核心程序或java類庫,十分重要裡面的任何文件幾乎都不要做刪除操作。
6. /media/audio 這裡面保存著安卓系統默認的鈴聲,alarms是鬧鈴提醒的,notification是簡訊或提示音,ringtones是來電鈴聲,而ui是一些界面音效,比如鍵盤敲擊聲。
7./system/lib 裡面保存的是系統底層類庫,裡面很多都是框架層的實現文件,一般以.so後綴結尾類似windows下的dll文件。
⑻ 安卓手機根目錄下的各個文件夾的作用,麻煩詳細介紹。
1、HelloWorld項目的目錄結構
1.1、src文件夾
1.2、gen文件夾
1.3、Android 2.1文件夾
1.4、assets
1.5、res文件夾
1.6、AndroidManifest.xml
1.7、default.properties
圖1、HelloWorld項目目錄結構
下面將分節介紹上面的各級目錄結構。
1.1、src文件夾
顧名思義(src, source code)該文件夾是放項目的源代碼的。打開HelloWorld.java文件會看到如下代碼:
package helloworld.test;
import android.app.Activity;
import android.os.Bundle;
public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
可以知道:我們新建一個簡單的HelloWorld項目,系統為我們生成了一個HelloWorld.java文 件。他導入了兩個類android.app.Activity和android.os.Bundle,HelloWorld類繼承自Activity且重 寫了onCreate方法。
以下說明針對沒有學過Java或者Java基礎薄弱的人
@Override
在重寫父類的onCreate時,在方法前面加上@Override 系統可以幫你檢查方法的正確性。
例如,public void onCreate(Bundle savedInstanceState){…….}這種寫法是正確的,
如果你寫成public void oncreate(Bundle savedInstanceState){…….}這樣編譯器回報如下錯誤——
The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,
以確保你正確重寫onCreate方法。(因為oncreate應該為onCreate)
而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認為你新定義了一個方法oncreate。
android.app.Activity類:因為幾乎所有的活動 (activities)都是與用戶交互的,所以Activity類關注創建窗口,你可以用方法setContentView(View)將自己的UI放 到裡面。然而活動通常以全屏的方式展示給用戶,也可以以浮動窗口或嵌入在另外一個活動中。有兩個方法是幾乎所有的Activity子類都實現的:
onCreate(Bundle): 初始化你的活動(Activity),比如完成一些圖形的繪制。最重要的是,在這個方法里你通常將用布局資源(layout resource)調用setContentView(int)方法定義你的UI,和用findViewById(int)在你的UI中檢索你需要編程地 交互的小部件(widgets)。setContentView指定由哪個文件指定布局(main.xml),可以將這個界面顯示出來,然後我們進行相關 操作,我們的操作會被包裝成為一個意圖,然後這個意圖對應有相關的activity進行處理。
onPause():處理當離開你的活動時要做的事情。最重要的是,用戶做的所有改變應該在這里提交(通常ContentProvider保存數據)。
更多的關於Activity類的詳細信息此系列以後的文章將做介紹,如果你想了解更多請參閱相關文檔。
android.os.Bundle 類:從字元串值映射各種可打包的(Parcelable)類型(Bundle單詞就是捆綁的意思,所有這個類很好理解和記憶)。如該類提供了公有方法—— public boolean containKey(String key),如果給定的key包含在Bundle的映射中返回true,否則返回false。該類實現了Parceable和Cloneable介面,所以 它具有這兩者的特性。
1.2、gen文件夾
該 文件夾下面有個R.java文件,R.java是在建立項目時自動生成的,這個文件是只讀模式的,不能更改。R
⑼ 如何定義字元串安卓textview1
如果寫int類型的,必須是R文件里的索引,如果R文件里沒有這個int值,當然就出錯了,很顯然,R裡面沒有2. 你可以寫成R.string.xxx,這個是int類型的
⑽ android程序的菜單文件在哪個文件夾下採用什麼格式保存
Android應用開發中,給我們提供了5種數據的存儲方式
1 使用SharedPreferences存儲數據
2 文件存儲數據
3 SQLite資料庫存儲數據
4 使用ContentProvider存儲數據
5 網路存儲數據
不同的業務邏輯,或者需求,用不同的實現方式
以下是這幾中數據存儲方式的說明用及法,
第一種: 使用SharedPreferences存儲數據
SharedPreferences是Android平台上一個輕量級的存儲類,主要是保存一些常用的配置比如窗口狀態,
一般在Activity中 重載窗口狀態onSaveInstanceState保存一般使用SharedPreferences完成,
它提供了Android平台常規的Long長 整形、Int整形、String字元串型的保存。
它是什麼樣的處理方式呢? SharedPreferences類似過去Windows系統上的ini配置文件,但是它分為多種許可權,
可以全局共享訪問,android123提示最終是以xml方式來保存,整體效率來看不是特別的高,
對於常規的輕量級而言比SQLite要好不少,如果真的存儲量不大可以考慮自己定義文件格式。
xml 處理時Dalvik會通過自帶底層的本地XML Parser解析,比如XMLpull方式,這樣對於內存資源佔用比較好。
它的本質是基於XML文件存儲key-value鍵值對數據,通常用來存儲一些簡單的配置信息。
其存儲位置在/data/data/< >/shared_prefs目錄下。
SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過Editor對象實現。
實現SharedPreferences存儲的步驟如下:
一、根據Context獲取SharedPreferences對象
二、利用edit()方法獲取Editor對象。
三、通過Editor對象存儲key-value鍵值對數據。
四、通過commit()方法提交數據。
下面是示例代碼:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//獲取SharedPreferences對象
Context ctx = MainActivity.this;
SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
//存入數據
Editor editor = sp.edit();
editor.putString("STRING_KEY", "string");
editor.putInt("INT_KEY", 0);
editor.putBoolean("BOOLEAN_KEY", true);
editor.commit();
//返回STRING_KEY的值
Log.d("SP", sp.getString("STRING_KEY", "none"));
//如果NOT_EXIST不存在,則返回值為"none"
Log.d("SP", sp.getString("NOT_EXIST", "none"));
}
}
這段代碼執行過後,即在/data/data/com.test/shared_prefs目錄下生成了一個SP.xml文件,一個應用可以創建多個這樣的xml文件。
SharedPreferences對象與SQLite資料庫相比,免去了創建資料庫,創建表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。
但是SharedPreferences也有其自身缺陷,比如其職能存儲boolean,int,float,long和String五種簡單的數據類型,比如其無法進行條件查詢等。
所以不論SharedPreferences的數據存儲操作是如何簡單,它也只能是存儲方式的一種補充,而無法完全替代如SQLite資料庫這樣的其他數據存儲方式。