一、基础与开发环境安装配置

  • Memory Options: VM Heap表示每个应用所能占用的最大内存。
  • Android 项目目录结构
  1. SRC java源码
  2. android.jar 导入jar才能使用android的api
  3. libs 第三方jar包
  4. assets 资源文件夹,存放音频视频等较大文件
  5. bin 编译打包后自动生成的文件
  6. RES 资源文件夹 drawable存放图片(ID 在R.java自动生成,通过ID调通,不用通过IO调用)文件名不能用数字和中文
  7. layout 布局文件
  8. menu 指定菜单样式
  9. values dimens 长度资源 string 字符串资源 styles 样式资源
  10. androidManifest.xml 清单文件或者配置文件
    • package 应用的包名,唯一标识
    • versioncode 版本号,系统看
    • versionName 版本名字,给用户看
    • application: icon 应用图标 label 应用标题
    • activity:activity的使用必须在清单文件中配置 icon、label activity也可配置图标和标题,不配置默认使用application的
    • intent-filter配置activity入口界面
  11. 11 properties 编译版本
  • ADB android debut bridge 让android设备 和 eclipse建立连接 占用5037端口
  1. 建立环境变量 android 输入platform-tools和SDK\tools变量值,用;隔开,在PATH中添加android变量值
  2. netstat -ano 查看端口占用情况
  • eclipse启动时devices.xml报错 不具有面有效性。它必须是来自枚举的值。Eclipse 打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素
  1. 解决方法:将sdk的tools下的lib下的devices.xml复制粘贴到C:\Users\用户名\.android下。没有解决,然后用以下方案解决
  2. 解决方案:用/sdk/tools/lib/devices.xml去替换system-images\android-22\android-wear\x86\devices.xml和system-images\android-22\android-wear\armeabi-v7a\devices.xml中的devices.xml,这样就可以解决
  • Eclipse 打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素。
  1. 方法1: 在SDK Manager里删除Android-wear相关的image

  2. 方法2: 进入sdk目录下,把..\android-sdk\system-images\android-22\android-wear\armeabi-v7a\devices.xml和..\android-sdk\system-images\android-22\android-wear\x86\devices.xml文件删除,再把sdk里面..\android-sdk\tools\lib\下的devices.xml拷贝到上述两个文件夹里,重启eclipse即可

  •  No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse
  1. 在stackoverflow上的解释如下:http://stackoverflow.com/questions/32075498/error-retrieving-parent-for-item-no-resource-found-that-matches-the-given-name,但是查找了所有相关的版本设置没有发现任何问题。
  2. 最终与以前的版本比较发现是在gradle编译的配置文件中,原来使用的是 compile 'com.google.android.gms:play-services:6.5.87' 现在版本是compile 'com.google.android.gms:play-services:8.4.0'
  3. 新版本的play-services是在sdk 23下编译的。所以导致上述错误。
  4. 这个配置版本的变化是在升级Android Studio 2.0 后被自动更新的。所以引入了这个编译错误。检查所有的依赖Libraries,确保使用的是相同版本编译的就可以解决这个问题。
  • 字体调整
  1. 窗口(Window)-首选项(Preferences)-常规(General)-外观(Appearence)-颜色与字体(Colors And Fonts),在右边的对话框里选择Java - Java Editor Text Font
  2. xml的字体大小调整: window--preferences--General--appearance--colors and fonts--Basic-- "Text font "
  • This version of the rendering library is more recent than your version of ADT plug-in. Please update

预览layout.xml文件时提示:

This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in
导致无法正常预览布局文件;

问题根源:SDK版本过高,ADT版本低;

解决办法有好几种,如下:

  1. Click Help > Install New Software. In the Work with field, enter: https://dl-ssl.google.com/android/eclipse/  Select Developer Tools / Android Development Tools.   Click Next and complete the wizard.
  2. Change android version while rendering layout.
  3. Change the Target version to new updates you have. Otherwise, change what SDK version you have in the Android manifest file.
  • android:minSdkVersion="8"
  • android:targetSdkVersion="18"
  • eclipse代码自动提示设置、如何配置eclipse的代码自动提示功能?

打开 Eclipse -> Window -> Perferences -> Java -> Editor -> Content Assist,在右边最下面一栏找到 auto-Activation ,下面有三个选项,找到第二个“Auto activation triggers for Java:”选项

在其后的文本框中会看到一个“.”存在。这表示:只有输入“.”之后才会有代码提示和自动补全,我们要修改的地方就是这里。把该文本框中的“.”换掉,换成“abcdefghijklmnopqrstuvwxyz.”,这样,你在Eclipse里面写Java代码就可以做到按“abcdefghijklmnopqrstuvwxyz.”中的任意一个字符都会有代码提示。

二、开发

  •  v7-appcompat\res\values-v21\themes_base.xml:139: error: Error: No resource found that matches
  1. ADT和SDK升级为高版本后,appcompat-v7解压到了extras/android/support/v7/appcompat/libs文件夹下,其中的values-v21或者values-v23在低版本中无法匹配。
  2. 具体解决办法:
    • 1、打开appcompat_v7的project.properties文件
    • 2、将target sdk修改为当前更新的sdk版本
      1. 方法1:如我这里将“target=android-19"改为”target=android-23“
      2. 方法2:选中当前工程,右击Properties,选择Android,将Project Build Target中的Target选为Android6.0
    • 3、刷新或clean或重启Eclipse,错误消除。

总结:关于values-v21 或v23以及其它资源未找到的错误,应该是adt版本与appcompat-v7和v4的版本不一致及target编号不一致产生。

  • Button四种点击事件实现方法
  1. .setOnClickListener(new MyListener());       class MyListener implements OnClickListener{
  2. .setOnClickListener(new OnClickListener() {
  3. public class MainActivity extends ActionBarActivity implements OnClickListener        .setOnClickListener(this);
  4. android:onClick="click"   layout文件中定义
  • 意图对象
  1. //1.创建意图对象    Intent intent = new Intent();
  2. //2.把动作封装至意图中    intent.setAction(intent.ACTION_CALL);
  3. //3.打电话打给谁     intent.setData(Uri.parse("tel:" + number));
  4. //4.告诉系统,我的动作   startActivity(intent);
  • 发短信(直接使用发送短信的API,无需启用系统的短信应用,所以无需意图对象)

//直接使用发送短信的API,无需启用系统的短信应用
SmsManager sm = SmsManager.getDefault();
//把长短信截成若干段短信
ArrayList<String> sms = sm.divideMessage(content);
for(String string : sms)
{
sm.sendTextMessage(phone, null, string, null, null);
}

  • 单位
  1. 字体:sp
  2. 长度:dp
  3. 基本不用px
  • 布局方式
  1. 相对布局:RelativeLayout
    • 组件可以重叠
    • 所有组件默认位置:左对齐、顶部对齐
    • layout_alignParent*:相对于父元素对齐
    • layout_align*:相对于其他组件对齐
    • layout_*:可以布局与其他组件的上下左右
  1. 线性布局:LinearLayout

    • orientation:

      • horizontal(默认) 
        1. 左右对齐无效
        2. 顶部底部对齐有效
        3. 水平居中无效
        4. 竖直居中有效
      • vertical    
        1. 左右对齐有效
        2. 顶部底部对齐无效
        3. 水平居中有效
        4. 竖直居中无效
    • gravity 当前控件内容显示位置
    • layout_gravity 当前控件在父元素的位置
    • layout_weight(权重)当前控件在父元素(线性布局weightSum,按方向分权重,weightSum属性如果没有,分的总权重为控件所占权重之和)中占N份,按 比例分配屏幕剩余空间( 没有实际尺寸占用的空间)
    • visibible控制布局是否显示 visible显示 invisible不显示但占空间 gone隐藏
  1. 帧布局:FrameLayout
    • 组件可以重叠
    • 所有组件默认位置:左对齐、顶部对齐
    • layout_gravity:对齐方式设置,相同的属性不能重复设置,设置到右边底部为:layout_gravity="right|bottom"
  1. 表格布局:TableLayout
    • 一个TableRow节点是一行
    • TableRow有几个子节点就有几列
    • 宽高属性可以不设置
  1. 绝对布局:AbsoluteLayout(无法屏幕适配,所以基本不用)
  • Debug
    1. 在最左边双击创建断点,点击Debug按钮进入调试模式
    2. 逐行调试F6,进入源码F7
  • 常用快捷键
  1. ctrl + alt + up(down/right/left)快速复制
  2. ctrl + / 注释
  3. ctrl + d 删除
  4. ctrl + t 查看接口定义方法的具体实现

android 学习随笔一(配置调试与基础)的更多相关文章

  1. Android学习系列(37)--App调试内存泄露之Context篇(下)

    接着<Android学习系列(36)--App调试内存泄露之Context篇(上)>继续分析. 5. AsyncTask对象 我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncT ...

  2. Android学习随笔--ListView的分页功能

    第一次写博客,可能格式,排版什么的会非常不美观,不过我主要是为了记录自己的Android学习之路,为了以后能有些东西回顾.既然是为了学习,那我肯定会吸收各位大大们的知道经验,有不足的地方请指出. 通过 ...

  3. android 学习随笔六(网络要求及配置)

    android在4.0之后已经不允许在主线程执行http请求了. 主线程阻塞,应用会停止刷新界面,停止响应用户任何操作,耗时操作不要写在主线程   只有主线程才能修改UI ANR异常:Applicat ...

  4. [转] Android学习系列(29)--App调试的几个命令实践

    在Android的应用开发中,我们会用到各种代码调试:其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面 ...

  5. Android学习系列(36)--App调试内存泄露之Context篇(上)

    Context作为最基本的上下文,承载着Activity,Service等最基本组件.当有对象引用到Activity,并不能被回收释放,必将造成大范围的对象无法被回收释放,进而造成内存泄漏. 下面针对 ...

  6. android 学习随笔十八(广播与服务 )

    1.广播接收者注册 清单文件注册(Android四大组件都要在清单文件中注册) 一旦应用部署,广播接收者就生效了,直到用户手动停止应用或者应用被删除 广播接收者可以使用代码注册 需要广播接收者运行时, ...

  7. android 学习随笔十六(广播 )

    1.广播接收者 BroadcastReceiver 接收系统发出的广播 现实中的广播:电台为了传达一些消息,而发送的广播,通过广播携带要传达的消息,群众只要买一个收音机,就可以收到广播了  Andro ...

  8. android 学习随笔十五(Activity的生命周期与摧毁时返回数据 )

    1.Activity的生命周期 onCreate:创建时调用 onStart:在屏幕上可见,但是还没有获得焦点 onResume:可见并且获得焦点 onPause:可见,但是失去焦点 onStop:不 ...

  9. android 学习随笔十四(页面跳转与数据传递)

    1.activity 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> ...

随机推荐

  1. 【转】Android性能优化之布局优化篇

     转自:http://blog.csdn.net/feiduclear_up/article/details/46670433 Android性能优化之布局优化篇 分类: andorid 开发2015 ...

  2. 关于action script与js相互调用的Security Error问题

    大家都知道,as和js相互调用可以通过ExternalInterface.call和ExternalInterface.addCallback来进行. 比较好的做法是使用之前通过ExternalInt ...

  3. 树莓派连接wifi

    使用树莓派,通过无线网卡连接wifi,再通过远程桌面或者ssh的连接树莓派比较方便,本文记录树莓派wifi如何设置. 参考链接: http://www.jianshu.com/p/b42e8d3df4 ...

  4. ionic一些常见问题及方法(网页链接式)

    ionic 进入二级目录以后隐藏底部导航栏(tabs) http://blog.csdn.net/shenshucong520/article/details/48287811ionic三级目录乃至多 ...

  5. ASCII码表和转义字符

    Bin Dec Hex 缩写/字符 解释 0000 0000 0 0 NUL(null) 空字符 0000 0001 1 1 SOH(start of headline) 标题开始 0000 0010 ...

  6. [PCL]4 PCL中图像匹配的几个类图

    IterativeClosestPoint () { reg_name_ = "IterativeClosestPoint"; ransac_iterations_ = ; tra ...

  7. mysql 快速生成百万条测试数据

    1.生成思路 利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中 2.创建内存表及普通表 CREATE TABLE `vote_record_me ...

  8. 如何让CRectTracker的m_rect不超出一定的范围,比如screen或者某个document的范围

    最近在尝试做一个QQ截图那样的工具,其中一个功能就是要做一个选择框,自然用到了CRectTracker 但是有一个很关键的东西就是,拖拽CRectTracker的时候,不能让CRectTracker“ ...

  9. HTTPS and the TLS handshake protocol阅读笔记

    目的 为能够透彻理解HTTPS报文交互过程,做此笔记. 本文大部分内容来自 : http://albertx.mx/blog/https-handshake/ http://www.cnblogs.c ...

  10. MySQL复制-设置延迟复制

    mysql> stop slave ; Query OK, 0 rows affected (0.00 sec) mysql> change master to master_delay= ...