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> ...
随机推荐
- 终于有人把P2P、P2C、O2O、B2C、B2B、C2C 的区别讲透了
http://news.mbalib.com/story/88506 P2P.P2C .O2O .B2C.B2B. C2C,每天看着这些常见又陌生的名词,如果有人跟你说让你解释它的含义,金融的小伙伴们 ...
- net Datable 基本操作
net Datable 基本操作 using System; using System.Collections.Generic; using System.Text; using System.Dat ...
- CentOS设置虚拟网卡做NAT方式和Bridge方式桥接
CentOS设置虚拟网卡做NAT方式和Bridge方式桥接 http://www.centoscn.com/CentOS/config/2015/0225/4736.html 摘要:KVM虚拟机网络配 ...
- Metro中控件WebView访问外部的网页显示一片空白
Metro中控件WebView访问外部的网页显示一片空白 解决方案: 下载安装了Initex.Software.Proxifier.v3.21.Standard.Edition.Incl.Keyma ...
- RabbitMQ学习总结 第一篇:理论篇
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- K线指标线计算方法
指标线计算方法 l dataDR = Kdata(原始数据)/dr(除权) //除权数据等于原始数据除以DR(除权) 其中,日K数据 需要本地进行除权处理.周K和月K的旧数据部分由服务器进行处理 ...
- C# WebBrowser控件 模拟登录 抓取数据
参考博客:C#中的WebBrowser控件的使用 参考博客:C#中利用WebBrowser控件,获得HTML源码 一.问题点: 1.模拟登录后,如果带有嵌套的iframe嵌套,不好读取iframe内容 ...
- Java遇见HTML——JSP篇之JSP指令与动作元素
一.include指令(如:<%@include file="..."%> ) 示例: Date.jsp <%@page import="java.te ...
- 学习RFS,所有文章的参考
所有文章的主要参考: CSDN博客:http://blog.csdn.net/tulituqi 微博:@齐涛-道长
- [RGeos]手簿
1.屏幕坐标以像素为单位,地图坐标通常以米为单位,CAD制图默认以毫米为单位. DPI是“dot per inch”的缩写.顾名思义,就是指在每英寸长度内的点数.通常,我们都使用dpi来作为扫描器和打 ...