单元测试
当我们编写完业务bean,一定要对bean单元测试。
第一步:首先在AndroidManifest.xml中加入下面红色代码:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.itcast.action“ android:versionCode="1“ android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
....
</application>
<uses-sdk android:minSdkVersion="6" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="cn.itcast.action" android:label="Tests for My App" />
</manifest>
上面targetPackage指定的包要和应用的package相同。
|
第二步:编写单元测试代码(选择要测试的方法,右键点击“Run As”--“Android Junit Test” ):
测试类需要继承 AndroidTestCase
import android.test.AndroidTestCase;
import android.util.Log;
public class XMLTest extends AndroidTestCase {
public void testSomething() throws Throwable {
Assert.assertTrue(1 + 1 == 3);
}
测试类要继承AndroidTestCase
在测试的时候,当有异常不要用tryCath捕获而要抛出异常。
|
Android应用程序架构
src/ java原代码存放目录
gen/ 自动生成目录
gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。
res/ 资源(Resource)目录
在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。具体请看ppt下方备注栏。
AndroidManifest.xml 功能清单文件
这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。
default.properties 项目环境信息,一般是不需要修改此文件
|
电话拔号器
因为应用要使用手机的电话服务,所以要在清单文件AndroidManifest.xml中添加电话服务权限:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.action" android:versionCode="1" android:versionName="1.0"> 略.... <uses-sdk android:minSdkVersion=“6" /> <uses-permission android:name="android.permission.CALL_PHONE"/> </manifest>
|
界面布局:
<?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/inputmobile"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/mobile"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:id="@+id/button"/> </LinearLayout>
|
Activity:
public class DialerAction extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { EditText editText = (EditText)findViewById(R.id.mobile); Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ editText.getText())); DialerAction.this.startActivity(intent); } }); } }
|
短信发送器
因为应用要使用手机的短信服务,所以要在清单文件AndroidManifest.xml中添加短信服务权限:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.sms" android:versionCode="1" android:versionName="1.0"> 略.... <uses-sdk android:minSdkVersion=“4" /> <uses-permission android:name="android.permission.SEND_SMS"/> </manifest>
|
界面布局:
<?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/inputmobile"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/mobile"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/content"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:minLines="3" android:id="@+id/content"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:id="@+id/button"/> </LinearLayout>
|
Activity主要代码:
String mobile = mobileView.getText().toString(); String content = contentView.getText().toString(); SmsManager smsManager = SmsManager.getDefault(); PendingIntent sentIntent = PendingIntent.getBroadcast(SMSSender.this, 0, new Intent(), 0); if(content.length()>70){//如果字数超过70,需拆分成多条短信发送 List<String> msgs = smsManager.divideMessage(content); for(String msg : msgs){ smsManager.sendTextMessage(mobile, null, msg, sentIntent, null); //最后二个参数为短信已发送的广播意图,最后一个参数为短信对方已收到短信的广播意图 } }else{ smsManager.sendTextMessage(mobile, null, content, sentIntent, null); } Toast.makeText(SMSSender.this, "短信发送完成", Toast.LENGTH_LONG).show();
|
分享到:
相关推荐
开发第一个Android应用 Android应用程序架构 电话拔号器实现
Android_电话拔号器
很实用的电话拔号器很不错的,下载后直接打开eclipse就能用
这是本人写的一个很小很简单的一个电话拔号器,真的可以实现打电话
互联星空拔号器密码取回程序 互联星空拔号器密码取回程序 互联星空拔号器密码取回程序
本APP主要是实现调用电话本身的拔号器进行拔号,界面简单,供学习使用,本人希望与大家互相学习安卓开发心得
与如何部署应用到真实手机,08_短信发送器,09_深入了解各种布局技术,10_对应用进行单元测试,11_查看与输出日志信 息,12_文件的保存与读取,13_文件的操作模式,14_把文件存放在SDCard,15_采用Pull解析器解析和...
与如何部署应用到真实手机,08_短信发送器,09_深入了解各种布局技术,10_对应用进行单元测试,11_查看与输出日志信 息,12_文件的保存与读取,13_文件的操作模式,14_把文件存放在SDCard,15_采用Pull解析器解析和...
电话拨号程序
小程序源码 电话号码拨打 (代码源)小程序源码 电话号码拨打 (代码源)小程序源码 电话号码拨打 (代码源)小程序源码 电话号码拨打 (代码源)小程序源码 电话号码拨打 (代码源)小程序源码 电话号码拨打 (代码源)小程序...
3G应用开发之Android,如何安装 Android SDK 和Eclipse 插件,电话拔号器,短信发送器,使用文件进行数据存储,把文件存放在SDCard,使用SAX或者DOM或者pull读取XML文件,使用SQLiteDatabase操作SQLite数据库
路由器拔号器 路由器切换IP软件 路由器切换IP工具 支持多种路由器
教程名称:8天快速掌握Android视频教程67集(附源码)课程目录:【】01_前言【】02_搭建Android开发环境【】...06_电话拔号器【】07_查看应用输出的错误信息 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
08_短信发送器.avi 所在项目:sms 09_深入了解各种布局技术.avi 所在项目:sms & FrameLayout 10_对应用进行单元测试.avi 所在项目:junitest 11_查看与输出日志信息.avi 所在项目:junitest 12_文件的保存与读取....
安卓ip电话拔号源码,利用广播事件接收来拔号事件,并加上ip前缀完成ip拔号加前缀功能
08_短信发送器.avi 所在项目:sms 09_深入了解各种布局技术.avi 所在项目:sms & FrameLayout 10_对应用进行单元测试.avi 所在项目:junitest 11_查看与输出日志信息.avi 所在项目:junitest 12_文件的保存与读取....
mediaring talk 拔号器 自动重拔,加入会议, 免费电话难打通,只好用机器自动重拔,很快就能接通了。
找回本机保存的互联星空拔号器登录密码, 获取星空极流氓软件拨号密码, 有了它可以摆脱星空极速限制路由,
C++ 实现的 局域网同步拔号程序(小程序),实现了远程拨号等功能。