前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1.入门和eclipse

1.入门和eclipse

作者头像
六月的雨
发布2018-05-14 10:10:07
8470
发布2018-05-14 10:10:07
举报
文章被收录于专栏:Android开发指南Android开发指南

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

  1. <intent-filter>
  2. <action android:name="android.intent.action.MAIN"/>
  3. <category android:name="android.intent.category.LAUNCHER"/>
  4. </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:采用直接的内部类
  1. btn.setOnClickListener(newOnClickListener(){
  2. @Override
  3. publicvoid onClick(View v){
  4. // TODO Auto-generated method stub
  5. }
  6. });
  • 方式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. //1.获取短信管理器
  2. SmsManager sm =SmsManager.getDefault();
  3. //2.切割短信,把长短信分成若干个小短信
  4. ArrayList<String> smss = sm.divideMessage(content);
  5. //3.for循环把集合中所有短信全部发出去
  6. for(String string : smss){
  7. sm.sendTextMessage(phone,null, string,null,null);
  8. }
  9. }

/*

    * 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

  1. Button bt1 =(Button) findViewById(R.id.bt1);
  2. bt1.setOnClickListener(this);
  3. bt2.setOnClickListener(this);
  4. publicvoid onClick(View v)
  5. switch(v.getId()){
  6. case R.id.bt1:
  7. break;
  8. case R.id.bt2:
  9. }
  • 第四种

* 给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" />

代码语言:javascript
复制
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测试工程的对话框, 在这里可以输入测试工程的名字, 并选择测试工程的路径。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-10-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 直接复制项目
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档