今天跟大家分享的是我学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服务,下一章我们一起学习这个啊。 觉得有价值就推荐下吧,你的推荐是我不断前进的动力 |
相关文章
- 09-2924-ESP8266 SDK开发基础入门篇--Android TCP客户端.控制 Wi-Fi输出PWM的占空比,调节LED亮度
- 09-29Android面试宝典,Android资深架构师分享学习经验及总结,深度集成!
- 09-29在Android开发中使用logcat的基础知识
- 09-29啃完999页Android面试高频宝典,全网独家首发!
- 09-29Android面试宝典,安卓大厂74道高级面试合集
- 09-29ndk开发入门!不了解这些多线程的基础知识,很难学懂Android!分享一点面试小经验
- 09-29Android 基础知识再次理解
- 09-29Android技术篇!阿里巴巴内部Jetpack宝典意外流出!聪明人已经收藏了!
- 09-29《Android 3D游戏开发技术宝典:OpenGL ES 2.0》吴亚峰扫描版pdf电子书百度网盘下载
- 09-29flutter写一个漂亮的登录界面,Android面试基础知识