Android宝典入门篇-基础知识
|
今天跟大家分享的是我学android时的笔记。以前搞net很多年了,现在还在搞这。本着活到老学到老抽了点时间学习了下android。android网上有很多的视频教程,当时对于我这样以前不了解java和eclipse的人来说还是遇到了一些很让人头疼的各种问题,分享这些问题我想对于跟我一样基础的人学习android肯定很有价值,有不周到的地方大家多指正。android挺好的,值得我花的时间,推荐大家有空也看看。 |
| 一、eclipse我常用的快捷键 |
|
1.、ctrl+shift+r:打开资源 2、ctrl_shift+/ 注释 3. ctrl+o:快速outline,神器啊 4. ctrl+e:快速转换编辑器,神器啊 5. alt+shift+r:重命名 7. shift+enter及ctrl+shift+enter 8. Alt+方向键 9. ctrl+m 最大\小化编辑器 10. ctrl+.:下一个错误及快速修改 Ctrl+Shift+X 把当前选中的文本全部变味小写 Ctrl+Shift+Y 把当前选中的文本全部变为小写 Ctrl+Shift+F 格式化当前代码 eclipse 断点调试快捷键 F3 --跳到声明或定义的地方。 F5 --单步调试进入函数内部。 F6 --单步调试不进入函数内部,如果装了金山词霸2006则要把“取词开关”的快捷键改成其他的。 F7 --由函数内部返回到调用处。 F8 --一直执行到下一个断点。 |
| 二、安装sdk错误 |
| SDK Manager:failed to install Warning! A folder failed to be renamed or moved.On Windows this typically means that a propram is using that folder>>>D:\android\android-sdk-windows\tools.When ready,press YES to try again.
解决办法: 1.进入sdk的temp文件夹,下载好后会有一个tools_r06-windows.zip(版本号可能会不一样) 2.解压此文件,如解压成tools_r06-windows 3.进入tools_r06-windows文件夹,将tools_r06-windows里的文件复制 4.覆盖sdk根目录的tools文件夹中的文件 |
| 三、sqllite操作 |
|
运行起模拟器 adb shell 进入linux命令行 插入数据: |
| 四、DDMS介绍 |
|
DDMS 的全称是Dalvik Debug Monitor Service,为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等 |
| 五、android.os.NetworkOnMainThreadException |
|
android4.0后不能再主线程上执行下载需要使用异步 1、新线程
new Thread(runnable).start();
2、执行下载操作
Runnable runnable = new Runnable() {
@Override
public void run() {
//执行下载操作
Message msg = new Message();
//发送结果
handler.sendMessage(msg);
}
};
private Handler handler = new Handler() {
@Override
// 当有消息发送出来的时候就执行Handler的这个方法
public void handleMessage(Message msg) {
try {
//处理结果
} catch (Exception e) {
Log.e(e.getMessage(), e.toString());
}
}
};
2、当然要是真不想使用异步也可以直接下载的,需要设置下,怎么设置大家找下度娘。 |
| 六、 java.net.SocketException: Permission denied (maybe missing INTERNET permission) |
|
在android中想操作文件,上个网,查看通讯录。啥的都需要开通相应的权限 列几个,这块可以在android开发文档中查找其他的 android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问”properties”表在checkin数据库中,改值可以修改上传( Allows read/write access to the “properties” table in the checkin database, to change values that get uploaded) android.permission.ACCESS_COARSE_LOCATION 允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi) location) android.permission.ACCESS_FINE_LOCATION 允许一个程序访问精良位置(如GPS) (Allows an application to access fine (e.g., GPS) location) android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 允许应用程序访问额外的位置提供命令(Allows an application to access extra location provider commands) android.permission.ACCESS_MOCK_LOCATION 允许程序创建模拟位置提供用于测试(Allows an application to create mock location providers for testing) android.permission.ACCESS_NETWORK_STATE 允许程序访问有关GSM网络信息(Allows applications to access information about networks) android.permission.ACCESS_SURFACE_FLINGER 允许程序使用SurfaceFlinger底层特性(Allows an application to use SurfaceFlinger’s low level features) android.permission.ACCESS_WIFI_STATE 允许程序访问Wi-Fi网络状态信息(Allows applications to access information about Wi-Fi networks) android.permission.ADD_SYSTEM_SERVICE 允许程序发布系统级服务(Allows an application to publish system-level services). |
| 七、模拟器10.0.2.2 代表127.0.0.1 |
| 经常在模拟器中测试下载文件啥的,用127.0.0.1不行啦 |
| 八、http操作 |
没有使用过java的人可以看下,我也是在网上找来的
package com.example.tools;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpDownLoad {
public String Download(String url) {
StringBuilder sb = new StringBuilder();
BufferedReader br = null;
String s;
try {
URL r = new URL(url);
HttpURLConnection con = (HttpURLConnection) r.openConnection();
br = new BufferedReader(new InputStreamReader(con.getInputStream()));
while ((s = br.readLine()) != null) {
sb.append(s);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return sb.toString();
}
public InputStream GetInputStream(String url) {
try {
URL r = new URL(url);
HttpURLConnection con = (HttpURLConnection) r.openConnection();
InputStream input = con.getInputStream();
return input;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
}
|
| 九、操作XML之SAX |
|
今天只跟大家分享下SAX这个轻量级的操作XML方法,他不像DOM那种把文件都加载到内存后再操作XML,我比较喜欢的 package cn.itcast.service;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import cn.itcast.model.Person;
public class SAXPersonService {
public List<Person> getPersons(InputStream inStream) throws Throwable
{
SAXParserFactory factory = SAXParserFactory.newInstance();//工厂模式还是单例模式?
SAXParser parser =factory.newSAXParser();
PersonParse personParser =new PersonParse();
parser.parse(inStream, personParser);
inStream.close();
return personParser.getPerson();
}
private final class PersonParse extends DefaultHandler
{
private List<Person> list = null;
Person person =null;
private String tag=null;
public List<Person> getPerson() {
return list;
}
@Override
public void startDocument() throws SAXException {
list =new ArrayList<Person>();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if("person".equals(localName))
{
//xml元素节点开始时触发,是“person”
person = new Person();
person.setId(new Integer(attributes.getValue(0)));
}
tag =localName;//保存元素节点名称
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
//元素节点结束时触发,是“person”
if("person".equals(localName))
{
list.add(person);
person=null;
}
tag =null;//结束时,需要清空tag
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if(tag!=null)
{
String data = new String(ch,start,length);
if("name".equals(tag))
{
person.setName(data);
}else if("age".equals(tag))
{
person.setAge(new Integer(data));
}
}
}
}
}
|
|
今天先到这里了,同样很喜欢android的朋友欢迎来群一起学习,也欢迎老鸟一起讨论设计模式和坐镇android。 android我喜欢wcf我也很喜欢,android请求wcf服务,下一章我们一起学习这个啊。 觉得有价值就推荐下吧,你的推荐是我不断前进的动力 |
Android宝典入门篇-基础知识的更多相关文章
- Nginx入门篇-基础知识与linux下安装操作
我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...
- Android宝典入门篇-进阶
学习Android前后有快有1个月了,本着不耍流氓,谈恋爱就要结婚的信念(其实AD开发也挺有趣的),做了自己的第一个Android小应用.本来准备今天和大家分享的,考虑到在不同屏幕上的效果没测试和本着 ...
- Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)
Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...
- Python入门篇-基础语法
Python入门篇-基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编程基础 1>.程序 一组能让计算机识别和执行的指令. 程序 >.算法+ 数据结构= 程 ...
- 爬虫入门一 基础知识 以及request
title: 爬虫入门一 基础知识 以及request date: 2020-03-05 14:43:00 categories: python tags: crawler 爬虫整体概述,基础知识. ...
- Android中的一些基础知识(三)
最近在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 在TextView中显示图像(使用< img>标签) 在TextView中显示图片的方法有许 ...
- Android中的一些基础知识(二)
这几天在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 简单介绍一下Activity的生命周期 在API文档中对生命周期回调的函数描述的很详细,这里我只是翻译 ...
- 2.Docker容器学习之新生入门必备基础知识
0x02 Docker 核心概念 描述:Docker的三大核心概念镜像/容器和仓库, 通过三大对象核心概念所构建的高效工作流程; 1.镜像 [image] 描述:images 类似于虚拟机镜像,借鉴了 ...
- 1.Docker容器学习之新生入门必备基础知识
0x00 Docker 快速入门 1.基础介绍 描述:Docker [ˈdɑ:kə(r)] 是一个基于Go语言开发实现的遵循Apache 2.0协议开源项目,目标是实现轻量级的操作系统虚拟化解决方案: ...
随机推荐
- 「Ionic」WebStorm的使用錯誤-
前言:遇到這個錯誤,不要慌張,搶按照濤叔下面的方式處理就可以了. 1.Couldn't find ionic.config.json file. Are you in an Ionic project ...
- python脚本传入参数--精讲(getopt模块)
1.最常用的sys.argv[],这个不多谈 2.形如 dahu@dahu-OptiPlex-:~/json_folder$ python sub1.py -abb -oaaa --output=ou ...
- openCV训练程序申请内存不足
openCV训练程序申请内存不足 在用OpenCV训练分类器(特别是训练Adaboost类型的分类器)的时候,当样本的数量特别大的时候,就会出现申请内存不够的情况,很早以前碰到过这样的情况,最近 ...
- Loadrunner中cookie解释与用法
loadrunner对于cookie的处理loadrunner中与cookie处理相关的常用函数如下: web_add_cookie():添加新的cookie或者修改已经存在的cookie web_r ...
- CSS3之背景定位原点background-origin
背景定位原点background-origin是CSS3新添加的有关背景的属性,主要是改变背景起始的原点位置的.CSS3之背景定位原点background-origin的属性值有三个:border.p ...
- python沙盒逃逸
前言 最近遇到了很多python沙盒逃逸的题目(不知道是不是因为现在python搭的站多了--),实际使用时发现只会复制别人的payload是不够用的,于是自己来总结一波(顺带一提python沙盒逃逸 ...
- springMVC接收参数 xml/json
springMVC参数接收 作为web层框架,可以接受复杂的类型,且很简单 1.接收字符串可以直接写参数类型,参数名称,跟前端传过来的name值一样即可 如果不一样也可以,通过@RequestPara ...
- 洛谷——P2559 [AHOI2002]哈利·波特与魔法石
P2559 [AHOI2002]哈利·波特与魔法石 题目描述 输入输出格式 输入格式: 文件中第一行有七个数,分别是 S1. S2 . …. S7 :第二行有两个数,依次分别是起点城市 i 和终点城市 ...
- centos7 默认进入系统命令行模式修改
systemctl get-default #查看系统启动进入默认模式 systemctl set-default graphical.target #改成默认进入 图形界面模式 systemctl ...
- 01-学前入门概念:.net与c#
.Net是由(.Net 平台和.Net FrameWork框架)这两部分组成. .Net FrameWork是由(CLR公共语言运行时和.Net 类库组成). .Net FrameWork框架是.Ne ...