安卓开发 季度总结一

经过这三个月安卓开发的学习和实战,现总结如下一些经验,以便时常反思。

1. 错误提示:Unable to start the daemon progress. (无法开启守护进程)

 解决方式:打开gradle.properties文件将其改成   org.gradle.jvmargs=-Xmx536m

2.文件R出现报错,一般是两种情况,其一是不小心直接修改了R文件,其二是写了错误的代码,但是没有处理直接写,很有可能是布局里面写错,从而造成R文件出错。

解决方式:先clean项目一下,去查看布局文件是否写错,再不行就删掉 build目录文件重新编译。

3.安卓的项目很多都是轻量级别的,不会存储大数据,数据库也是本地轻量级别的SQLite数据库。

4.出现黄色警告是因为检测到可能会造成内存泄漏,自己处理好可以暂时不用管。

5.养成自己的编码习惯,小问题要即时解决,否则编译不了,一些资源文件,尤其是图片的命名一定要合法,不然就没法引用。

6.有空研究研究奔溃日志。

7.空指针错误。一般先去看是哪个对象空指针,再去找相应的代码进行调试。

8.从服务器获取到数据之后,再取来进行解析,一般都是在子线程进行,因为子线程不能更新UI,所以必须要利用回调到主线程进行操作。回调到主线程的常用方式:其一是 handle,其二是AsyncTask。

9.一些类如果找不到包进行导入,最常用的方法就是手动导入。

10.类 是 单继承,多实现(类与类之间加一个逗号)。

11. 关于手机定位: GPS在室内信号会很弱,有可能定位不到,但GPS定位精度会比网络定位高很多。网络定位在室内可以获取到经纬度值。国内开发常用的是第三方百度地图。

12.关于相机:真机测试中,安卓7.0以上对uri有限制,必须配置白名单。

   解决方案:在res目录上新建文件夹XML,在里面新建文件file_path.xml.

           <external-path name="" path=""/> 其中 name就是取个名字,用于代码引用,后面就是本地路径。

       <external-path/> 是磁盘根目录。  <cache-path/> 是缓存根目录

  13.关于刷新:页面是死的,但是显示的内容是活的,任何一个组件都能够重新设置成数据或者改变状态,这就是刷新。

  14.两个不相关的App,要想整合在一起,就必须加入引用关系文件,在settings.gradle中添加。

          如: include ':app',':bottomnam'

 15.关于显示Intent:     前往A页面,A页面也不用做任何处理。

Intent intent = new Intent(mContext,A.class);

startActivity(intent);

其中:mContent在Activity里面就是用this,内部类中就是xxActivity.this,在fragment里就是getContext或者getActivity.

16. 关于回调函数:设计模式中的观察者模式与其类似,使用的话java中有Future,Callable,Executor配合使用。

       实现Callable接口 重写Call方法,使用Executors静态方法,newFixedThreadPool会返回ExecutorService,将Callable的实例

       传递给ExecutorService的shubmit方法就可以了,这样会返回一个Future对象,调用Future的get方法就可以获取线程的返回          信息。

   注意:

     不管怎么回调,都是需要一个变量去接收然后到主线程去执行,但是run()方法是空返回而且无参的,通常就是把值保存在变量当中,然后传递给主线程。回调就是说:不再是主线程询问子线程是否已经执行完毕,而是由子线程来告诉程序,我执行完了。就是将信息封装好后调用主函数 类中的一个方法并且将线程参数传递进去,这样就可以防止 因为while(true)而做的大量不必要的工作,也就是在没有得到s != null时候的死循环状态。

17.在return之后,是不可以写判断语句的,只要return了,后面的代码都不会运行到。

18.关于Android 调试:常用的快捷键的使用

         F8:单步调试,即代码向下执行一行。

          F9:代码直接执行跳到下一个断点,如果没有下一个断点则将代码执行完毕,调试结束。

          Alt + F8:进行表达式判断,可以输入表达式,查看表达式的返回值。

19. 网络编程

安卓客户端与服务器端之间交互,常见 webServices 和 json.

与服务器端的通信两种协议: HTTP (Http 协议或者Java API),TCP(Socket);

跟服务器传数据的话,一般采用  RESTful API 来传输,至少了解:Get和Post区别,

一般情况下,使用webServices 传输xml文件简单,对数据大小及传输速度有要求就用json.

20. Socket 与Http连接的区别:

Http连接使用的是  “请求-------------响应“  的方式。

a.请求时候先建立连接。

b.客户端向服务器端发出请求

c.服务器端才会回复数据

备注:socket 可以监听,socket连接一旦建立,通信双方即可,开始互发送数据内容,直到双方连接断开,保持客户端与服务器端数据实时与同步。

xml Rpc  是使用Http 协议作为传输协议的rpc机制,使用xml 文本的方式传输命令和数据。

Rpc        (Remote  Procedure Call)  远程过程调用。

猜你喜欢

转载自blog.csdn.net/lwzy1314/article/details/82016830
今日推荐