⑴ robolectric 支持 api 21嗎
Robolectric簡介
在android平台上運行單元測試用例需要真機或模擬器,從構建、部署、到啟動應用程序通常需要好幾分鍾,這對於TDD來說太慢了,也許你嘗試過在IDE上直接運行測試用例,但得到的只能是java.lang.RuntimeException: Stub!
而Robolectric正是這樣一個允許單元測試直接運行於JVM之上的單元早磨測試框架,無需真機或模擬器,因此大大加快核宴了運行速度。
原理:參考http://www.infoq.com/cn/articles/android-unit-test
缺點:Robolectric對Android底層的模擬實現還未完全
Robolectric環境准備:
預置條件:
1.已安裝有android開發環境
2.已安裝有maven環境
3.Eclipse已安裝有M2Eclipse插件
備註:
環境中,maven版本為3.1.1(需要根據情況更新到新版本);
robolectric包版本為:robolectric-2.2-jar-with-dependencies.jar;
RobolectricSample-master.zip示例工程最好下載最新的;
由於示例工程處於不斷改動中,示例工程與robolectric包最好下載同一天最新的,不然很可能出現版本不兼容問題
M2Eclipse推薦安裝方式:
插件方式,輸入以下地址,最後的kepler為當前的Eclipse版本
http://download.eclipse.org/releases/kepler
搜索框中輸入maven搜索
RobolectricSample示例工程
1.下載示例工程https://github.com/robolectric/RobolectricSample
2.命令行下切換到工程目錄,執行android update project -p . --target 7
(--target指定android的api level,android list命令可查詢)
3.import 導入示例工程
4.配置build path,添加robolectric-***-jar-with-dependencies.jar包陸氏斗;
添加<your android install directory>/add-ons/addon-google_apis-google-**/libs/maps.jar
由於依賴關系,需要適當調整上下位置
5.配置Run Configuration,Right-click -> Run As -> Run Configurations
Tab: Classpath -> User Entries -> Add External JARs ...
找到android.jar
6.運行測試用例;右鍵點擊測試用例,選擇Run As -> Junit Test
可以看到80幾個用例,僅需要20餘秒,運行速度非常地快。
可能遇到的問題:
1.Project build error: Unknown packaging: apk
在Eclipse中安裝m2e-android插件
安裝源:http://rgladwell.github.com/m2e-android/updates/
安裝方法:Help -> Install new Software -> 在出來的對話框中點擊 Add ->
Name:m2e-android
Location:http://rgladwell.github.com/m2e-android/updates/
也可以通過:
若m2e裝好後仍未解決,檢查Maven配置
Windows—>Preferences—>Maven—>User Settings,查看setting.xml
確保這里的Maven不是用的Eclipse自帶的,而是本地下載的新版本的Maven
2.示例工程與robolectric包不一致問題
[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:andr
oid-maven-plugin:3.6.1:generate-sources (default-generate-sources) on project ro
bolectricsample: Execution default-generate-sources of goal com.jayway.maven.plu
gins.android.generation2:android-maven-plugin:3.6.1:generate-sources failed: A r
equired class was missing while executing com.jayway.maven.plugins.android.gener
ation2:android-maven-plugin:3.6.1:generate-sources: Lorg/sonatype/aether/Reposit
orySystem;
原因:示例工程與robolectric包不是同一天的,有不兼容問題
解決:下載同一天的,最新版本
3.maven版本不兼容問題
maven clean test時報錯,提示需要更新版本的maven
原因:maven版本為3.1.0,版本過低不兼容
解決:下載3.1.1版本
4.導入工程後,pom.xml文件中,以下插件報錯
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<sdk>
<!-- platform or api level (api level 4 = platform 1.6)-->
<platform>18</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
提示:
Plugin execution not covered by lifecycle configuration:
com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.0:consume-aar (execution:
default-consume-aar, phase: compile)
解決:
打開 'Problems'視圖: 'Window' -> 'Show View' -> 'Problems'
右鍵點擊報錯的地方,選擇'Quick Fix'
點擊選擇'Permanently mark goal generate in pom.xml as ignored in Eclipse build' -> 'Finish' -> 'OK'
修改完後,右鍵項目—> Maven —> Update Project
5.NoClassDefFoundError
執行用例時,部分可以執行通過,而部分報NoClassDefFoundError錯誤
原因:NoClassDefFoundError是通過new的形式去生成類實例的,在編譯期間是存在的,但是在運行的時候找不到該類。
報錯中也指出ClassNotFoundException,class均為android.jar包的
解決:配置Run Configurations,將android.jar包包含進去。
Right-click -> Run As -> Run Configurations
Tab: Classpath -> User Entries -> Add External JARs ...
添加android.jar
⑵ 如何安裝maven projects插件
1、下載maven插件
打開eclipse ,help-install new software
add
name : m2e
url: http://download.eclipse.org/technology/m2e/releases/ (今天渣豎是2014-2-26,這個地址是有效的,手梁兆以後不知道是否有效)
name : m2e
url: http://rgladwell.github.com/m2e-android/updates (2014-4-16,這個地址是有效的,以後不知道是否有效)
2、下載 maven-bin
下載畢租地址 http://download.csdn.net/download/cyw8998/6963959
⑶ android maven plugin有什麼作用
Android Maven Plugin——這個是Maven的插件,目的是能在使用mvn package時讓maven構建出一個能在Android上使用的目標文件。
工具的介紹完畢,下面看看如何將Maven整合進一個Android工程:
首先看看對於已經存在的Android工程:
安裝好如上的插件,在Android的工程上點右鍵,彈出菜單Configure->Convert to Maven project
配置好項目信息後會生成pom.xml以及工程上的圖標已經多出一個小M字
更改project的packaging類型為apk
[html]viewplain
<projectxmlns="
xsi:schemaLocation="
<modelVersion>4.0.0</modelVersion>
<groupId>org.cst.ming.android.sample</groupId>
<artifactId>sample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
......
在pom內聲明一個build的插件,在maven構建項目的時候就會在target內生成一個apk的文件
[html]viewplain
注意,這里指定了插件的版本,這個是maven官方提供的建議,需要在構建插件中指定插件版本;還有一點就是必須指定sdk.platform及sdk.path屬性,不然會因為找不到sdk而無法build的
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.0.0</version>
<inherited>true</inherited>
<extensions>true</extensions>
<configuration>
<sdk>
<platform>7</platform>
<path>${env.ANDROID_SDK_HOME}</path>
</sdk>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
</plugin>
這時候可以在pom.xml內添加各種的依賴,並且執行mvn clean package即可構建出一個apk文件在target
此時已經整合完畢,可以在IDE內通過ADT來啟動項目,亦可以通過在pom.xml內配置android-maven-plugin通過mvn android:deploy將項目部署到指定的設備(虛擬機)上,詳情可以查閱android-maven-plugin的官方文檔
對於新建項目的:
在新建項目的時候可以採用archetype(項目原型)的方式構建,在向導內選擇項目原型,分別有
de.akquinet.android.archetypes:android-quickstart:1.0.6——用於快速構建一個android-maven項目
de.akquinet.android.archetypes:android-with-test:1.0.6——用於構建一個帶有測試的android-maven項目
de.akquinet.android.archetypes:android-release:1.0.6——用於構建一個可以發布的android-maven項目,其中包含了一個純maven的父項目及兩個子android-maven項目
在項目創建之後,還有點需要修改的,由於android-maven-plugin原名為maven-android-plugin,因為某種關系在某個版本之後更名為android-maven-plugin,但在這個原型內還是使用舊的maven-android-plugin,所以需要使用新插件的必須手動修改plugin.artifactId及其plugin.version
⑷ eclipse怎麼新建一個layout
eclipse 在layout下新建一個.xml
滑鼠點layout一下 ...點右鍵->new ->android xml file 如果沒有就是樓上的. 進去寫檔名字字尾為.xml且不能為大寫 點finish就好了
右陵宏擊WebContent----new---foder
foder的中文就是資料夾
第一步:配置m2e外掛資訊
點選window->preferences->Maven->Installations中點選add,配置本地maven地址。
接著配置user Settings資訊,點選window->preferences->Maven->user Settings,選擇您自己下載的maven的settings資訊。
第二步:建悔宴立Maven專案
點選:CTR+N選擇Maven->Maven Project,點選Next->,這里使用預設配置,直接Next,
這里有很多的Artifact Id,到底選擇哪一個,具體看我們的專案,一般情況下,如果你建立的Java
APP應用,應該選擇GroupId為.apache.maven.archetypes,Artifact
ID為:maven-archetype-quickstart,如果你建立的是web應用,就應該選擇Group
ID為:.apache.maven.archetypes,Artifact
ID為:maven-archetype-webapp,這里我們建立一個webapp應用,點選Next進入配置groupid與artifactid資訊:這里的配置相信了解過maven的一看就明白。值得注意的是version,系統預設使用了SNAPSHOT,這表示當前的專案為一個快照版本,沒有正式
釋出,如果你的version選擇的是快照,在將來發布到中央倉庫或到私服上是不可以的。接著我們點選Finish,Eclipse會根據你選擇的專案去
中央倉尺前冊庫或私服上去下載必要的外掛,在稍等一會兒之後(等待時間跟網速或是否第一次使用maven建立本型別專案有關),專案就建立完成了。
project 有可能是ejb的,或者是J2EE的。
java project 僅僅是指j2se的專案
首先使用eclipse工具,若想快捷建立hibernate檔案的話,要下載hibernate tools
在eclipse-->help--->Install New Sofare裡面輸入網址:
:download.jboss./jbosstools/updates/stable/helios/
可以自動檢索到hibernate tools工具。點選下載
下面開始正題:
1、File--->new--->other--->搜尋hibernate 建立hibernate.cfg.xml檔案
2、填寫內容
3.填寫完畢內容 點選建立。
完成的配置檔案:hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-Hibernate/Hibernate Configuration DTD 3.0EN"
":hibernate.sourcefe.NET/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name=hibernate.connection.username>root</property>
<property name=hibernate.connection.password>mysqladmin</property>
<property name=hibernate.dialect>.hibernate.dialect.MySQLDialect</property>
<property name=hibernate.connection.driver_class>.MySQL.jdbc.Driver</property>
<property name=hibernate.connection.url>jdbc:mysql:/db_pb</property>
<property name=hibernate.hbm2ddl.auto>update</property>
首先定義一個fragment
在onCreateView中返回fragment的檢視
public class MyFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_test, null);
return view;
}
}
方法一,靜態的使用Fragment,直接在布局檔案中加入fragment
android:name指定fragment的類
<LinearLayout xmlns:android=":schemas.android./apk/res/android"
xmlns:tools=":schemas.android./tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name=".MyFragment"/>
</LinearLayout>
方法二,動態新增fragment,
activity布局,用一個framelayout作為fragment容器
<RelativeLayout xmlns:android=":schemas.android./apk/res/android"
xmlns:tools=":schemas.android./tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".example.demo.MainActivity" >
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"></FrameLayout>
</RelativeLayout>
activity程式碼
package .example.demo;
import android.app.Activity;
import android.app.FragmentManager;
public class MainActivity extends Activity {
FragmentManager fm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fm = getFragmentManager();
fm.beginTransaction().add(R.id.fragment_container,new MyFragment()).mit();
}
感謝您對諾基亞Lumia520的支援。您可以在電腦上開啟live.網頁,選擇「立即注冊」,根據提示填寫相關個人資訊(出生年齡填寫為大於十八周歲,國家區域選擇為中國),然後點選「接受」,注冊成功後將手機連線可用網路,進入設定-電子郵件+賬戶-新增賬戶-Microsoft賬戶中登陸您的微軟賬戶即可。
首先確保你的電腦里已經正確的安裝了JDK,檢視方法和執行結果如下。
eaton@eaton:~$ echo $JAVA_HOME
/usr/java/jdk1.8.0_20
eaton@eaton:~$ java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) Server VM (build 25.20-b23, mixed mode)
eaton@eaton:~$
若出現如上的結果,說明電腦里已經安裝JDK成功。
這是一個開發網站的框架,如果你要生成一個軟體的話,這個框架應該是達不到你的要求的。具體是要看看你是生成網站,還是需要軟體?