android 学习随笔一(配置调试与基础)
一、基础与开发环境安装配置
- Memory Options: VM Heap表示每个应用所能占用的最大内存。
- Android 项目目录结构
- SRC java源码
- android.jar 导入jar才能使用android的api
- libs 第三方jar包
- assets 资源文件夹,存放音频视频等较大文件
- bin 编译打包后自动生成的文件
- RES 资源文件夹 drawable存放图片(ID 在R.java自动生成,通过ID调通,不用通过IO调用)文件名不能用数字和中文
- layout 布局文件
- menu 指定菜单样式
- values dimens 长度资源 string 字符串资源 styles 样式资源
- androidManifest.xml 清单文件或者配置文件
- package 应用的包名,唯一标识
- versioncode 版本号,系统看
- versionName 版本名字,给用户看
- application: icon 应用图标 label 应用标题
- activity:activity的使用必须在清单文件中配置 icon、label activity也可配置图标和标题,不配置默认使用application的
- intent-filter配置activity入口界面
- 11 properties 编译版本
- ADB android debut bridge 让android设备 和 eclipse建立连接 占用5037端口
- 建立环境变量 android 输入platform-tools和SDK\tools变量值,用;隔开,在PATH中添加android变量值
- netstat -ano 查看端口占用情况
- eclipse启动时devices.xml报错 不具有面有效性。它必须是来自枚举的值。Eclipse 打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素
- 解决方法:将sdk的tools下的lib下的devices.xml复制粘贴到C:\Users\用户名\.android下。没有解决,然后用以下方案解决
- 解决方案:用/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: 在SDK Manager里删除Android-wear相关的image
方法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
- 在stackoverflow上的解释如下:http://stackoverflow.com/questions/32075498/error-retrieving-parent-for-item-no-resource-found-that-matches-the-given-name,但是查找了所有相关的版本设置没有发现任何问题。
- 最终与以前的版本比较发现是在gradle编译的配置文件中,原来使用的是 compile 'com.google.android.gms:play-services:6.5.87' 现在版本是compile 'com.google.android.gms:play-services:8.4.0'
- 新版本的play-services是在sdk 23下编译的。所以导致上述错误。
- 这个配置版本的变化是在升级Android Studio 2.0 后被自动更新的。所以引入了这个编译错误。检查所有的依赖Libraries,确保使用的是相同版本编译的就可以解决这个问题。
- 字体调整
- 窗口(Window)-首选项(Preferences)-常规(General)-外观(Appearence)-颜色与字体(Colors And Fonts),在右边的对话框里选择Java - Java Editor Text Font
- 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版本低;
解决办法有好几种,如下:
- 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.
- Change android version while rendering layout.
- 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
- ADT和SDK升级为高版本后,appcompat-v7解压到了extras/android/support/v7/appcompat/libs文件夹下,其中的values-v21或者values-v23在低版本中无法匹配。
- 具体解决办法:
- 1、打开appcompat_v7的project.properties文件
- 2、将target sdk修改为当前更新的sdk版本
- 方法1:如我这里将“target=android-19"改为”target=android-23“
- 方法2:选中当前工程,右击Properties,选择Android,将Project Build Target中的Target选为Android6.0
- 3、刷新或clean或重启Eclipse,错误消除。
总结:关于values-v21 或v23以及其它资源未找到的错误,应该是adt版本与appcompat-v7和v4的版本不一致及target编号不一致产生。
- Button四种点击事件实现方法
- .setOnClickListener(new MyListener()); class MyListener implements OnClickListener{
- .setOnClickListener(new OnClickListener() {
- public class MainActivity extends ActionBarActivity implements OnClickListener .setOnClickListener(this);
- android:onClick="click" layout文件中定义
- 意图对象
- //1.创建意图对象 Intent intent = new Intent();
- //2.把动作封装至意图中 intent.setAction(intent.ACTION_CALL);
- //3.打电话打给谁 intent.setData(Uri.parse("tel:" + number));
- //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);
}
- 单位
- 字体:sp
- 长度:dp
- 基本不用px
- 布局方式
- 相对布局:RelativeLayout
- 组件可以重叠
- 所有组件默认位置:左对齐、顶部对齐
- layout_alignParent*:相对于父元素对齐
- layout_align*:相对于其他组件对齐
- layout_*:可以布局与其他组件的上下左右
- 线性布局:LinearLayout
- orientation:
- horizontal(默认)
- 左右对齐无效
- 顶部底部对齐有效
- 水平居中无效
- 竖直居中有效
- vertical
- 左右对齐有效
- 顶部底部对齐无效
- 水平居中有效
- 竖直居中无效
- horizontal(默认)
- gravity 当前控件内容显示位置
- layout_gravity 当前控件在父元素的位置
- layout_weight(权重)当前控件在父元素(线性布局weightSum,按方向分权重,weightSum属性如果没有,分的总权重为控件所占权重之和)中占N份,按 比例分配屏幕剩余空间( 没有实际尺寸占用的空间)
- visibible控制布局是否显示 visible显示 invisible不显示但占空间 gone隐藏
- orientation:
- 帧布局:FrameLayout
- 组件可以重叠
- 所有组件默认位置:左对齐、顶部对齐
- layout_gravity:对齐方式设置,相同的属性不能重复设置,设置到右边底部为:layout_gravity="right|bottom"
- 表格布局:TableLayout
- 一个TableRow节点是一行
- TableRow有几个子节点就有几列
- 宽高属性可以不设置
- 绝对布局:AbsoluteLayout(无法屏幕适配,所以基本不用)
- Debug
- 在最左边双击创建断点,点击Debug按钮进入调试模式
- 逐行调试F6,进入源码F7
- 常用快捷键
- ctrl + alt + up(down/right/left)快速复制
- ctrl + / 注释
- ctrl + d 删除
- ctrl + t 查看接口定义方法的具体实现
android 学习随笔一(配置调试与基础)的更多相关文章
- Android学习系列(37)--App调试内存泄露之Context篇(下)
接着<Android学习系列(36)--App调试内存泄露之Context篇(上)>继续分析. 5. AsyncTask对象 我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncT ...
- Android学习随笔--ListView的分页功能
第一次写博客,可能格式,排版什么的会非常不美观,不过我主要是为了记录自己的Android学习之路,为了以后能有些东西回顾.既然是为了学习,那我肯定会吸收各位大大们的知道经验,有不足的地方请指出. 通过 ...
- android 学习随笔六(网络要求及配置)
android在4.0之后已经不允许在主线程执行http请求了. 主线程阻塞,应用会停止刷新界面,停止响应用户任何操作,耗时操作不要写在主线程 只有主线程才能修改UI ANR异常:Applicat ...
- [转] Android学习系列(29)--App调试的几个命令实践
在Android的应用开发中,我们会用到各种代码调试:其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面 ...
- Android学习系列(36)--App调试内存泄露之Context篇(上)
Context作为最基本的上下文,承载着Activity,Service等最基本组件.当有对象引用到Activity,并不能被回收释放,必将造成大范围的对象无法被回收释放,进而造成内存泄漏. 下面针对 ...
- android 学习随笔十八(广播与服务 )
1.广播接收者注册 清单文件注册(Android四大组件都要在清单文件中注册) 一旦应用部署,广播接收者就生效了,直到用户手动停止应用或者应用被删除 广播接收者可以使用代码注册 需要广播接收者运行时, ...
- android 学习随笔十六(广播 )
1.广播接收者 BroadcastReceiver 接收系统发出的广播 现实中的广播:电台为了传达一些消息,而发送的广播,通过广播携带要传达的消息,群众只要买一个收音机,就可以收到广播了 Andro ...
- android 学习随笔十五(Activity的生命周期与摧毁时返回数据 )
1.Activity的生命周期 onCreate:创建时调用 onStart:在屏幕上可见,但是还没有获得焦点 onResume:可见并且获得焦点 onPause:可见,但是失去焦点 onStop:不 ...
- android 学习随笔十四(页面跳转与数据传递)
1.activity 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> ...
随机推荐
- 【转】Android性能优化之布局优化篇
转自:http://blog.csdn.net/feiduclear_up/article/details/46670433 Android性能优化之布局优化篇 分类: andorid 开发2015 ...
- 关于action script与js相互调用的Security Error问题
大家都知道,as和js相互调用可以通过ExternalInterface.call和ExternalInterface.addCallback来进行. 比较好的做法是使用之前通过ExternalInt ...
- 树莓派连接wifi
使用树莓派,通过无线网卡连接wifi,再通过远程桌面或者ssh的连接树莓派比较方便,本文记录树莓派wifi如何设置. 参考链接: http://www.jianshu.com/p/b42e8d3df4 ...
- ionic一些常见问题及方法(网页链接式)
ionic 进入二级目录以后隐藏底部导航栏(tabs) http://blog.csdn.net/shenshucong520/article/details/48287811ionic三级目录乃至多 ...
- ASCII码表和转义字符
Bin Dec Hex 缩写/字符 解释 0000 0000 0 0 NUL(null) 空字符 0000 0001 1 1 SOH(start of headline) 标题开始 0000 0010 ...
- [PCL]4 PCL中图像匹配的几个类图
IterativeClosestPoint () { reg_name_ = "IterativeClosestPoint"; ransac_iterations_ = ; tra ...
- mysql 快速生成百万条测试数据
1.生成思路 利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中 2.创建内存表及普通表 CREATE TABLE `vote_record_me ...
- 如何让CRectTracker的m_rect不超出一定的范围,比如screen或者某个document的范围
最近在尝试做一个QQ截图那样的工具,其中一个功能就是要做一个选择框,自然用到了CRectTracker 但是有一个很关键的东西就是,拖拽CRectTracker的时候,不能让CRectTracker“ ...
- HTTPS and the TLS handshake protocol阅读笔记
目的 为能够透彻理解HTTPS报文交互过程,做此笔记. 本文大部分内容来自 : http://albertx.mx/blog/https-handshake/ http://www.cnblogs.c ...
- MySQL复制-设置延迟复制
mysql> stop slave ; Query OK, 0 rows affected (0.00 sec) mysql> change master to master_delay= ...