Android Dev Doc

Android 开发 多使用内部类 使用方便且效率高

UI方面的知识

一、在编写layout的xml文件时,一定要仔细!如果在报错的时候,如何解决?
解决:将xml仔细检查并保存后再运行。

二、在运行程序时,还未运行onCreate()方法之前就报错(MyAndroid(Project))!
原因:在用eclipse 新建的项目的AndroidManifest.xml 文件中的application节点中android:lable写了。去掉后就无错。(待验证!)

三、onCreateContextMenu
-> 创建长按菜单键
显示的菜单!处理菜单选择事件方法-> onContextItemSelected

四、在对数据库操作时,一定要记住open..

五、Fragments 类似于Activity 生命周期有点类似。。。一个Activity中可以有很多个Fragments,一个Fragments可以被多个Activity使用,要实现Fragments也必须去跟Activity一样去集成父类。

六、两种方式将Layout中的XML转换为View

  1. LayoutInflater inflater = (强转)getSystemService(Context.LAYOUT_INFLATER_SERVICE)
    inflater.inflater(layoutId,null);
  2. LayoutInflater inflater =
    LayoutInflater.from(this);

final
View textEntryView = inflater.inflate(R.layout.alert_dialog_text_entry, null);

七、Dialog的机制 :当Activity中调用showDialog(int
id)时会去回调onCreateDialog() 回调执行完毕后执行onPrepareDialog()。

八、利用线程来实现ProgressBar

  1. 新建一个匿名类实现Runable接口,run方法里面来for循环progressBar的max value
  2. 在for内利用android.os.Handler类的实例的post方法来对progressBar实例的操作(其中post的参数又是一个Runable的实现类-利用匿名类来实现run方法,在方法内对progressBar的实例操作)。->注意:progressbar 的max越大越能看出效果。

九、得到NotificationManager
以及Notification的使用

  1. 在Activity中 nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  2. new Notification(显示图片的ID,显示的文本,Notification显示的时间)
  3. Notification的使用步骤:
    1. 所有的Notification都是由NotificationManager来管理的,因此必须得到NotificationManager的实例
    2. 构造一个Notification(注意setLatestEventInfo这个方法是用来:1:当展开Notification时如何呈现Notification 2:当用户单击时如何处理Notification)
    3. 利用NotificationManager的实例来启动Notification

十、D

数据存储的操作

一、数据存储的3中方式

  1. SharedPreferences 方式 会以xml存在data/data/XXX.xml中
  2. 文件存储 (要在程序当中读取文件那么文件应该放在res/raw用以下方式获得:Resources res = getResources(); res.openRawResource(R.raw.xxx) 即可)
  3. SQLite存储方式

二、利用ContentValues 来存储到数据库

  1. ContentValues cv = new
    ContentValues(); cv.putXXX(Key,Value)
  2. Xx.insert(TableName,cv…..)

三、利用ContentProvider实现跨程序访问(由于Android系统中的数据都是私有的)

  1. 新建一个日记类
    当中含有内部类实现了BaseColumns接口(该内部类中包含了很多字段URI 等等),该日记类包含了授权字段,授权的字段必须跟以下类注册的provider要保持一致
  2. 新建一个子类去继承ContentProvider 重写它的onCreate(),query,insert,update,getType 等方法,并且在AndroidManifest.xml文件中进行注册。

四、使用WebServices

  1. 在Manifest.xml文件中赋予权限 Android.permission.INTERNET
  2. 以POST的方式发送请求
  3. 以HttpRespone 接受返回值。

五、在创建数据表的时候,必须包含_id字段。如果未包含,必须升级数据库或者删除表重新建。OnUpgrade()方法升级。

程序开发步骤

一、实现UI

二、数据存储和操作

三、实现多页面跳转

四、增加Service

五、完善细节

六、应用测试

finishActivity(RESULT_OK)不能结束当前的activity,只有调用finish()才能。

为什么我不调用startManagingCursor()方法也可以取出数据。。

当查询的Cursor只有一个结果的时候,需要调用moveToFrist()方法,要不会抛出数组下标异常android.database.CursorIndexOutOfBoundsException: Index -1

实现GoogleMap

一、需要com.google.map.(jar
包)

二、在CMD下利用Java的keytool.exe 生成API KEY

a)        
keytool –list –alias
androiddebugkey –keystore “debug.keystore的路径 如:C:\Documents and
Settings\Administrator\.android”

b)        
提示输入密码,输入:Android

c)        
Copy 产生的key

三、在Google网站上申请API KEY

a)        
进入:http://code.google.com/intl/zh-CN/android/maps-api-signup.html

b)        
输入上步得到的MD5认证KEY

c)        
点击Generate API Key

d)        
得到申请到的API Key

四、使用getSharedPreferences方法的注意事项

a)        
此方法是Context的一个方法,如果需要得到文件必须context要在manifest.xml文件中进行注册了的才会得到对象。要不会抛null异常

五、使用BaseAdapter的注意事项

a)        
在使用adapter时,方法的getCount必须返回size(否则显示不出)

b)        
getView()方法在首次加载的时候参数converView是null

c)        
调用notifyDataSetChanged()方法来针对改变了list来更新view

六、使用AIDL (Android
Interface Description Language) 进行不同进程之间的通信

七、AlertDialog的使用

a)        
在设置多个Button的时候不能使用同样的方法setButton();

b)        
必须使用setButton2要不然会覆盖掉前面的。

八、D

Android技术点(面试)

一、Android 线程之间通信方式有几种:

a)        
Handler (如果在子线程当中实例化Handler前必须创建消息队列Looper.prepare(),实例化完毕后调用Looper.loop()启动消息队列,不用的时候quite()队列)

b)

二、如果有多个Activity 如何来全部结束(4中方式)

a)        
Process.killProcess(Process.myPid());System.exit(0);

b)        
ActivityManager am =
(ActivityManager)getSystemService (ACTIVITY_SERVICE);
am.restartPackage(getPackageName()); 必须在Manifest.xml申明权限:android.permission.RESTART_PACKAGES

c)        
我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,    
    这里我们在A窗口打开B窗口时在Intent中直接加入标志   
    Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
    在A窗口中使用下面的代码调用B窗口Intent
intent = new Intent();  
   intent.setClass(Android123.this,CWJ.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    //注意本行的FLAG设置startActivity(intent);接下来在B窗口中需要退出时直接使用finish
    方法即可全部退出。

d)        
利用单例模式来管理全部的activity.. 点击查看

三、Android的MVC 体现到哪里

a)        
M:res/values下生成,也可以通过代码获得   (V 通过Adapter 与M互相连接)

b)        
V: Layout /下的xml生成也可同过代码生成。

c)        
C:Activity

四、Android中存储数据的几种方式

a)        
使用SharePreferences 存储(使用SharedPreferences是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。)

b)        
文件存储

c)        
SQLite

d)        
使用ContentProvider

e)        
网络存储

五、如何解决Android中sdcard存储文件的限制

a)        
加入两个权限:android.permission.WRITE_EXTERNAL_STORAGE(可写权限)

b)        
创建,删除权限:android.permission.MOUNT_UNMOUNT_FILESYSTEMS

六、Android 请求服务端的几种方式

a)        
第三方插件ksoap

b)        
HttpURLConnection

七、Android 中有几种Adapter

八、SimpleAdapter,SimpleCursorAdapter,ArrayAdapter

Android小技术知识(多用于面试)的更多相关文章

  1. 我一个五年Android开发,居然被一个技术不如我的面试官嫌弃了......

    背景 首先介绍一下自己的情况.目前所在的是一家小的创业公司,待了5年多,薪资一般吧.由于这几年公司也在转型.工作经历大概可以分为 3 个阶段. 第一阶段是从进公司开始做 android app 开发, ...

  2. 我收藏的技术知识图(每张都是大图)关于XX背后的知识、技术图,例如:Linux、Nginx架构、PHP知识卡、机会、HTML5移动、Android系统架构、YII架构的典型流程、Css知识表

    我收藏的技术知识图(每张都是大图) HTML5Linux/Unix系统设计思想读书笔记 LinuxMVCJava线程MVCSpring MVCCSS3Nginx架构VimCliCommandsPHP知 ...

  3. 详细介绍android rom移植知识普及

    详细介绍android rom移植知识普及 最近接到很多兄弟们的求助,也回答过无数个和下面这个问题类似的问题: 如何编译android 原生代码得到一个rom,然后跑到某某手机上. 鉴于很多兄弟对这块 ...

  4. Android官方技术文档翻译——Gradle 插件用户指南(1-3)

    不知道是什么网络问题,上午一直发不了博客,其它页面基本正常,就是在写博客这里,每次打开都是响应超时.刚才用了VPN,顺便试了一下,竟然能够编辑.想是CDN之类的问题吧. 这次翻译的是Gradle 插件 ...

  5. Android官方技术文档翻译——Gradle 插件用户指南(5)

    昨晚把第五章未译完的几句话攻克了.只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章. 本文译自Android官方技术文档<Gradle Plugin User Gu ...

  6. Android官方技术文档翻译——Gradle 插件用户指南(6)

    没想到翻译这篇<Gradle 插件用户指南>拖了差不多一个月,还跨年了.不过还好,在2号时终于一口气把剩下的给翻译完了(其实那天剩下的也就不到一章). 今天先发一下第六章,明天再发第七章. ...

  7. Android官方技术文档翻译——新构建系统概述

    本文译自Android官方技术文档<New Build System>,原文地址:http://tools.android.com/tech-docs/new-build-system. ...

  8. 解析 Android Things 技术原理

    2012 年 6 月,由 IoT-GSI(Global Standards Initiative on Internet of Things)发布的白皮书“ITU-T Y.4000/Y.2060”[1 ...

  9. Android研发技术的进阶之路

    前言 移动研发火热不停,越来越多人开始学习android开发.但很多人感觉入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,到达下一阶段需要补充哪些内容.市面上也多是谈论知识图谱,缺少体系和 ...

随机推荐

  1. shell top解析

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不 ...

  2. 最小生成树---->prim算法的应用 hdu1863

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. FastReport.Net使用:[31]使用带参查询及存储

    带参查询 1.在数据列表中创建一个名为姓名的参数. 然后使用一个对话框,将文本框的ReportParameter(报表参数)选为参数中的姓名. 给童鞋们的一个题目:这里可以改为下拉框,学生列表从数据库 ...

  4. 【BZOJ 4305】 4305: 数列的GCD (数论)

    4305: 数列的GCD Description 给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N).  现在问题是,对于1到M的每个整数d,有多少个不 ...

  5. [ZOJ3254] MON 9.2009Secret Code

    A^x = D (mod P) 0 <= x <= M, here M is a given integer. 1 <= A, P < 2^31, 0 <= D < ...

  6. 我的OI生涯 第七章 终篇

    11.10日. 我们TSOI再次来到了熟悉的燕山大学,只不过这次是真刀真枪的干了. 望着那座熟悉的小桥,身边的好友不知此行过后还有多少. 下午才到,出人意外的是这次没有住燕大宾馆而是选择了熟悉的格林豪 ...

  7. [USACO06FEC]Milk Patterns --- 后缀数组

    [USACO06FEC]Milk Patterns 题目描述: Farmer John has noticed that the quality of milk given by his cows v ...

  8. [HNOI2018]道路 --- 树形DP

    [HNOI2018]道路 题目描述: W 国的交通呈一棵树的形状.W 国一共有 \(n-1\) 个城市和 \(n\) 个乡村, 其中城市从 \(1\) 到 \(n-1\) 编号,乡村从 \(1\) 到 ...

  9. asp.net连接LDAP数据,并从LDAP中取出相关数据(1)

    ASP.NET连接LDAP数据库的有关信息 一.封装在DAL层中的获取用户信息的函数 /// <summary> /// 按照用户Id查找用户信息 /// </summary> ...

  10. OC利用正则表达式获取网络资源(网络爬虫)

    在开发项目的过程,很多情况下我们需要利用互联网上的一些数据,在这种情况下,我们可能要写一个爬虫来爬我们所需要的数据.一般情况下都是利用正则表达式来匹配Html,获取我们所需要的数据.一般情况下分以下三 ...