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

  • 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. 终于有人把P2P、P2C、O2O、B2C、B2B、C2C 的区别讲透了

    http://news.mbalib.com/story/88506 P2P.P2C .O2O .B2C.B2B. C2C,每天看着这些常见又陌生的名词,如果有人跟你说让你解释它的含义,金融的小伙伴们 ...

  2. net Datable 基本操作

    net Datable 基本操作 using System; using System.Collections.Generic; using System.Text; using System.Dat ...

  3. CentOS设置虚拟网卡做NAT方式和Bridge方式桥接

    CentOS设置虚拟网卡做NAT方式和Bridge方式桥接 http://www.centoscn.com/CentOS/config/2015/0225/4736.html 摘要:KVM虚拟机网络配 ...

  4. Metro中控件WebView访问外部的网页显示一片空白

    Metro中控件WebView访问外部的网页显示一片空白 解决方案: ​下载安装了Initex.Software.Proxifier.v3.21.Standard.Edition.Incl.Keyma ...

  5. RabbitMQ学习总结 第一篇:理论篇

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  6. K线指标线计算方法

    指标线计算方法 l   dataDR = Kdata(原始数据)/dr(除权)  //除权数据等于原始数据除以DR(除权) 其中,日K数据 需要本地进行除权处理.周K和月K的旧数据部分由服务器进行处理 ...

  7. C# WebBrowser控件 模拟登录 抓取数据

    参考博客:C#中的WebBrowser控件的使用 参考博客:C#中利用WebBrowser控件,获得HTML源码 一.问题点: 1.模拟登录后,如果带有嵌套的iframe嵌套,不好读取iframe内容 ...

  8. Java遇见HTML——JSP篇之JSP指令与动作元素

    一.include指令(如:<%@include file="..."%> ) 示例: Date.jsp <%@page import="java.te ...

  9. 学习RFS,所有文章的参考

    所有文章的主要参考: CSDN博客:http://blog.csdn.net/tulituqi 微博:@齐涛-道长

  10. [RGeos]手簿

    1.屏幕坐标以像素为单位,地图坐标通常以米为单位,CAD制图默认以毫米为单位. DPI是“dot per inch”的缩写.顾名思义,就是指在每英寸长度内的点数.通常,我们都使用dpi来作为扫描器和打 ...