今天跟大家分享的是我学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命令行
ls -l查看目录
cd进入目录
sqlite3 test.db操作test.db

  插入数据:
     SQLiteDatabase db = openOrCreateDatabase("test",
      Context.MODE_PRIVATE, null);
      String sql = "insert into role(id,name) values(?,?)";
      String[] values=new String[]{"11","系统管理员"};
      db.execSQL(sql, values);

 四、DDMS介绍

DDMS 的全称是Dalvik Debug Monitor Service,为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等
FileExolorer文件浏览
EmulatorControl模拟向模拟器发送短信,声音。等

 五、android.os.NetworkOnMainThreadException

android4.0后不能再主线程上执行下载需要使用异步
需要新建一个线程执行Runnable中的操作,然后把结果发送给Handler

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中想操作文件,上个网,查看通讯录。啥的都需要开通相应的权限
需要把对应授权加到AndroidManifest.xml中
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

列几个,这块可以在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宝典入门篇-基础知识的更多相关文章

  1. Nginx入门篇-基础知识与linux下安装操作

    我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...

  2. Android宝典入门篇-进阶

    学习Android前后有快有1个月了,本着不耍流氓,谈恋爱就要结婚的信念(其实AD开发也挺有趣的),做了自己的第一个Android小应用.本来准备今天和大家分享的,考虑到在不同屏幕上的效果没测试和本着 ...

  3. Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)

    Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...

  4. Python入门篇-基础语法

    Python入门篇-基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编程基础 1>.程序 一组能让计算机识别和执行的指令. 程序 >.算法+ 数据结构= 程 ...

  5. 爬虫入门一 基础知识 以及request

    title: 爬虫入门一 基础知识 以及request date: 2020-03-05 14:43:00 categories: python tags: crawler 爬虫整体概述,基础知识. ...

  6. Android中的一些基础知识(三)

    最近在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 在TextView中显示图像(使用< img>标签) 在TextView中显示图片的方法有许 ...

  7. Android中的一些基础知识(二)

    这几天在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 简单介绍一下Activity的生命周期 在API文档中对生命周期回调的函数描述的很详细,这里我只是翻译 ...

  8. 2.Docker容器学习之新生入门必备基础知识

    0x02 Docker 核心概念 描述:Docker的三大核心概念镜像/容器和仓库, 通过三大对象核心概念所构建的高效工作流程; 1.镜像 [image] 描述:images 类似于虚拟机镜像,借鉴了 ...

  9. 1.Docker容器学习之新生入门必备基础知识

    0x00 Docker 快速入门 1.基础介绍 描述:Docker [ˈdɑ:kə(r)] 是一个基于Go语言开发实现的遵循Apache 2.0协议开源项目,目标是实现轻量级的操作系统虚拟化解决方案: ...

随机推荐

  1. springcloud 显示服务详细健康信息

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  2. Python 中for...esle和while...else语法

    Python的for...else和while...else语法,这是Python中最不常用,最为误解的语法特性之一. Python中的for.while循环都有一个可选的else分支(类似if语句和 ...

  3. Linux下Diff命令

    一般正常比较两个文件用vimdiff,算是直接进入vim界面,如果比较两个文件夹下面的文件,可以用diff,注意,这里只会比较文件夹下面的同名文件,他会列出不一样的点. 参考Linux下Diff命令使 ...

  4. linux shell awk实现实时监控网卡流量脚本

    goodtools! 原文 awk 'BEGIN{ OFMT="%.3f"; devf="/proc/net/dev"; while(("cat &q ...

  5. [实战]MVC5+EF6+MySql企业网盘实战(17)——思考2

    写在前面 今天吃饭回来,突然有一个更好的想法,这里做一下记录. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战 ...

  6. docker部署Asp.net core应用

    1 容器概念 使用Docker前我们首先要简单了解一下容器的概念.MSDN上有一张虚拟机和容器的对比图,很好的展示了虚拟机和容器的区别,如下所示,虚拟机包括应用程序.必需的库或二进制文件以及完整的来宾 ...

  7. 【LOJ】#2350. 「JOI 2017/2018 决赛」月票购买

    题解 首先求一个最短路图出来,最短路图就是这条边在最短路上就保留,否则就不保留,注意最短路图是一个有向图,一条边被保留的条件是 dis(S,u) + val(u,v) = dis(v,T)我们需要求两 ...

  8. Django 如何实现 如下 联表 JOIN 查询?

    SQL语句: select distinct a.device_hash, sum(b.cmn_merge_count) from (select distinct device_hash from ...

  9. 看雪论坛 破解exe 看雪CTF2017第一题分析-『CrackMe』-看雪安全论坛

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 逆向 黑客 破解 学习 论坛 『CrackMe』 http://bbs.pediy.co ...

  10. CSS 笔记——导航栏、下拉菜单、提示工具

    8. 导航栏.下拉菜单.提示工具 (1)导航栏 垂直导航栏 <!DOCTYPE html> <html lang="en"> <head> &l ...