android 学习随笔一(配置调试与基础)

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

  • 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 查看接口定义方法的具体实现
posted @ 2016-09-09 14:33  ecollab  阅读(370)  评论(0编辑  收藏  举报