1.入门和eclipse

 Android项目目
src:项目的java代码
gen
    buildConfig:应用是否可以debug
    R:保存项目中使用的资源的id
        Android.jar:导入这个包,应用才可以使用Android的api
libs:存放第三方jar包
assets:资源文件夹,存放视频或者音乐等较大的资源文件
bin:存放应用打包编译后的文件
res:资源文件夹,在这个文件夹中的所有资源,都会有资源id,读取时通过资源id就可以读取
     资源id不能出现中文
layout:布局文件夹,保存布局文件,Android中所有布局文件都是xml文件
menu:菜单配置文件夹,保存菜单的配置文件,决定菜单的样式
values
strings:字符串资源文件,用来定义字符串资源的
dimens:长度资源文件,用来定义长度资源
style:样式和主题资源文件
清单文件
package:应用在系统中的唯一识别
versionCode:应用的版本号

具有以下子节点的activity就是入口activity
  
  
      
      
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
 
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

  安装路径
  •   第三方应用保存路径:data/app
  系统应用保存路径:system/app
  data/data/包名文件夹:系统为每一个应用提供的一个专属空间

直接复制项目

  • 需要改动的地方:
    • 项目名字
    • 应用包名
    • R文件重新导包
 项目创建 

minimum SDK 要求最低的安装版本, 安装apk前,系统会判断当前版本是否高于(包含)此版本, 是的话才允许安装

maxSdkVersion 要求最高的安装版本(一般不用),可以指定,高了20就不能安装
   <uses-sdk
         android:minSdkVersion="8"
         android:targetSdkVersion="16"
         android:maxSdkVersion="20"  />

Target SDK 目标SDK, 一般设置为开发时使用的手机版本, 这样的话,系统在运行我的apk时,就认为我已经在该做了充分的测试, 系统就不会做过多的兼容性判断, 从而提高运行效率

Compile With 编译程序时使用的版本,一般选最高版本就行了

导入工程
别的项目可以导入,如果不行可以new一个工程,不是安卓工程,选择要导入的项目就可以,如果出现很多错误,优先考虑资源文件 ,有可能需要改版本,改project.properties就可以

  DDMS
      Dalvik debug monitor service
  ADB
      Android debug bridge
      建立eclipse和Android设备之间的连接
  • 存放在 sdk的 platform-tools目录下,如果想要在命令行中使用这个工具,就需要先把它的路径配置到环境变量里。如果你使用的是 Windows系统,可以右击我的电脑→属性→高级→环境变量,然后在系统变量里找到 Path并点击编辑,将 platform-tools目录配置进去
   ADB指令
  •  adb start-server:启动adb进程
  •  adb kill-server:杀死adb进程
  •  adb install E:\yyh.apk
  • adb uninstall 应用包名
  •  adb devices:列出与开发环境建立连接的android设备的列表
  •  adb shell:进入Android命令行
  • sqlite3加上数据库名:打开数据库
  • .table命令:看目前数据库中有哪些表
  • .schema:查看建表语句
 Android的指令:
  •  ls:罗列出当前目录下的所有文件和文件夹
  •  ps:罗列出当前系统运行的所有进程
  •  netstat -ano:查看系统的端口占用情况


项目1:电话拨号器:
         代码的逻辑的部分:
   其中需要为按钮设置一个点击的事件的函数
   其中函数中需要传入的参数是实现该OnclickListener的实现类
   那么就会需要进行定义内部类实现该接口OnClickListener并且同时
   进行复写该onClick的方法;
     在此的方法中进行获取输入框的中内容。
  • 方式1:采用直接的内部类
  
  
btn.setOnClickListener(newOnClickListener(){
@Override
publicvoid onClick(View v){
// TODO Auto-generated method stub	
}
});

  • 方式2:自己定义一个内部类
     btn.setOnClickListener(new MyListener());
            class MyListener implements OnClickListener
             主要是要设置当前activity的意图content,比如打电话
     就是一个很为简单的意图:
        Intent intent=new Intent(Intent.ACTION_CALL);
           
     同时需要往这个意图的对象中加入打电话的数据:电话号码
        intent.setData(Uri.parse("tel:"+text));

     最后将该活动设置为系统的监听!
 startActivity(intent);

项目2:在不同的按钮中进行设置相同的相应的函数
       同时这两个按钮在同一的界面的activity中,那么
       在这两个按钮的相应的函数中就会在这个总的
       activity中的!
       
       因为在这个界面的配置中有一个属性activity_main.xml:
         <LinearLayout ....
tools:context=".MainActivity" >
       那么这个界面的配置就是依赖于哪个activity的实体类!



项目3:设置短信的发送
       
       界面的设置:
          1)提示输入号码的编辑文本edittext
  2)提示输入信息的编辑文本edittext
          3)发送按钮的设置(和书中不一样)
          
  •      首先进行获取两个的文本对象及其内容
  •        事件的监听的机制:
          为按钮进行设置相应的函数sendMessage(View view)
          以及涉及到SmsManager类进行消息的管理的类:
   
  
  
//1.获取短信管理器
SmsManager sm =SmsManager.getDefault();
//2.切割短信,把长短信分成若干个小短信
ArrayList<String> smss = sm.divideMessage(content);
//3.for循环把集合中所有短信全部发出去
for(String string : smss){
    		sm.sendTextMessage(phone,null, string,null,null);
}
}


/*
      * destinationAddress:
      *   发送的目的地址
      * scAddress
      *   发送的信息中心的地址
      * text
      *   发送的文本
      * sentIntent
      *   发送的成功或失败的标识
      * deliveryIntent
      *   发送另一方的标识 
      */
关键点:
    a)注意短信的内容过长,要进行分发 ;
    b)发送短息和打电话不一样,其中的发送短信有着开放的api那么自己就能够
      编写,而打电话则是不一样的,其内部是封装好的!所以使用intent
   

定义事件的四种方法:
  • 第一种
* 定义一个MyListener实现onClickListener接口

Button bt1 = (Button) findViewById(R.id.bt1);
        bt1.setOnClickListener(new MyListener());
     
  •  第二种
* 定义一个匿名内部类实现onClickListener接口
Button bt2 = (Button) findViewById(R.id.bt2);
        bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("第二种");
}
});



  • 第三种
* 让当前activity实现onClickListener接口
View:系统会把触发这个方法的那个组件的对象作为view对象传进来
通过对view对象的判断,就可以知道用户点击的到底是哪一个按钮拿到按钮的id
   
   
Button bt1 =(Button) findViewById(R.id.bt1);
        bt1.setOnClickListener(this);
        bt2.setOnClickListener(this);
publicvoid onClick(View v)
switch(v.getId()){
case R.id.bt1:
break;
case R.id.bt2:
}


  • 第四种
* 给Button节点设置onClick属性,

 android:onClick="click"
 
* 然后在activity中定义跟该属性值同名的方法

public void click(View v){
System.out.println("第四种");
}
   

logcat

* 日志信息总共分为5个等级
1. Log.v()
这个方法用于打印那些最为琐碎的,意义最小的日志信息。对应级别 verbose,是
Android日志里面级别最低的一种。
2. Log.d()
这个方法用于打印一些调试信息, 这些信息对你调试程序和分析问题应该是有帮助
的。对应级别 debug,比 verbose高一级。
3. Log.i()
这个方法用于打印一些比较重要的数据,这些数据应该是你非常想看到的,可以帮
你分析用户行为的那种。对应级别 info,比 debug高一级。
4. Log.w()
这个方法用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好
去修复一下这些出现警告的地方。对应级别 warn,比 info高一级。
5. Log.e()
这个方法用于打印程序中的错误信息,比如程序进入到了 catch语句当中。当有错
误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级
别 error,比 warn高一级。

* System.out.print输出的日志级别是info,tag是System.out
* Android提供的日志输出api
Log.v(TAG, "加油吧,童鞋们");
Log.d(TAG, "加油吧,童鞋们");
Log.i(TAG, "加油吧,童鞋们");
Log.w(TAG, "加油吧,童鞋们");
Log.e(TAG, "加油吧,童鞋们");
Log方法中传入了两个参数,第一个参数是 tag,一般传入当前的类名就好,主要用于
打印信息进行过滤。第二个参数是 msg,即想要打印的具体的内容。

Logcat技巧
  1. 模拟器上可以输出的日志可以直接翻到最后去看,真机就不行了,因为它会一直刷
  2. 直接在搜索框搜索打印的内容
  3. 过滤器查看,一般用TAG过滤信息,他是唯一的


debug
  1. 点断点
  2. 点小虫子运行程序,Eclipse跳转到debug界面

测试:
  •    测试的概念:
      黑盒测试:测试业务的逻辑
      白盒测试: 测试逻辑的方法

  •     测试的力度:
      方法测试: function test
      单元测试:  unit test
      集成测试:  integeration test
      系统测试:  system test

  •     测试的暴力的程度:
      冒烟测试: smoke test (针对内存溢出问题)
      压力测试: pressure text (多个访问)

    其实对于我们最为重要的是unit test单元的测试:

   测试的案例:

           注意点:
     1):首先测试类进行继承AndroidTestCase这个类。
     2):其次需要进行配置maniftest.xml文件进行配置二级标签
          <instrumentation 
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.itheima.junittest"
    ></instrumentation>

  其中android:name指的是android的测试的仪器的驱动。
      android:targetPackage:指的是所要测试目标应用包,就是这里出现了问题

     3):需要进行配置maniftest.xml文件进行配置三级标签(application父标签)
         用户的类库:
      <uses-library android:name="android.test.runner"/>

     4):要善于用断言Assertl类进行测试
              * 断言的作用,检测运行结果和预期是否一致
              * 如果应用出现异常,会抛给测试框架

测试报错后,添加测试框架相关参数;

测试框架(放在manifest根节点)

<instrumentation

        android:name="android.test.InstrumentationTestRunner"

        android:targetPackage="com.itheima.mobilesafe" />

 

依赖库(放在application里面)

  <uses-library android:name="android.test.runner" />
publicclassUtils{
 
publicstaticint add(int i,int j){
return i + j;
}
publicstaticvoid chuyi(int i,int j){
int result = i / j;
}
}
publicclassTestCaseextendsAndroidTestCase{
publicvoid test(){
//通过类名.方法来测试这个方法,然后点击test运行就可以看到测试结果,也可以将test改成testAdd来测试这个方法,点哪个方法就是测试哪个方法,别的方法不运行
int result =Utils.add(3,5);
//断言:用来检测实际值与期望值是否一致
		assertEquals(8, result);
}
publicvoid test2(){
Utils.chuyi(2,1);
}
}


在 Eclipse的导航栏中点击 File→New→Other,会打开一个对话框,展开 Android目录,在里面选中 Android Test
Project,点击 Next后会弹出创建 Android测试工程的对话框, 在这里可以输入测试工程的名字, 并选择测试工程的路径。



















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值