2019独角兽企业重金招聘Python工程师标准>>>

一:String、StringBuffer和StringBuilder之间的区别

String类型与StringBuffer类型主要性能区别其实在于String是不可变的对象,因此在每次改变String对象的时候其实都等于生成一个新的String对象,然后将新指针指向新的String对象。

StringBuffer是一个可变对象,但对它进行修改的时候不会像String那样重新建立对象。(线程安全)

StringBuilder是一个可变对象,它跟StringBuffer相比不是线程安全的,一般在单个线程操作的时候,速度比StringBuffer快得多。(线程非安全)

StringBuffer支持并发操作,线程安全,适合在多线程中使用;StringBuilder不支持并发操作,线程不安全,不适合在多线程中使用。

二:WebView

http://www.open-open.com/lib/view/open1431569835951.html

基本使用:

1:在XML布局中添加WebView控件

2:在Manifest文件中添加权限:<uses-permission android:name="android.permission.INTERNET"/>

3:在java代码中获得该WebView的一个引用,同时使用loadUrl()加载一个网址

如:webView.loadUrl("http://www.baidu.com");

webView.loadUrl("file://android_asset/XX.html");

4:如果不想要打开一个系统浏览器,则需要为WebView设置一个WebViewClient,并重写方法

webView.setWebViewClient(new WebViewClient(){public boolean shouldOverrideUrlLoading(WebView view,String url){view.loadUrl(url);return true;}
});

5:设置Java脚本是否可用

webView.getSettings().setJavaScriptEnable(true);

webView.getSettings().setJavaScriptEnable(false);

利用隐式Intent打开浏览器并加载指定网页:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);

三:APPWidget

http://www.cnblogs.com/qianlifeng/archive/2011/03/26/1996407.html

http://www.cnblogs.com/youxilua/archive/2011/09/24/2189465.html

四:AsyncTask

http://www.cnblogs.com/devinzhang/archive/2012/02/13/2350070.html

在Android中实现异步消息机制的方法:Handler和AsyncTask

execute():执行一个异步任务,需要我们在代码中调用此方法,触发异步任务的执行。

onPreExecute():这个方法会在后台任务开始执行之前完成,用于进行一些界面的初始化操作,比如显示一个进度条对话框等。

doInBackground():这个方法中的所有代码都会在子线程中运行,我们应该在这里去处理所有的耗时任务。

onProgressUpdate():当在后台任务中调用publishProgress()方法后,这个方法就会很快被调用,方法中携带的参数就是在后台任务中传递过来的。在这个方法中可以对UI进行操作,利用参数中的数值就可以对界面元素进行相应的更新。

onPostExecute():当后台任务执行完毕并通过return语句返回时,这个方法就很快会被调用。返回的数据会作为参数传递到此方法中,可以利用返回的数据来进行一些UI操作。

五:使用HTTP协议访问网络

http://blog.csdn.net/itachi85/article/details/50982995

工作原理:客户端向服务器发出一条HTTP请求,服务器收到请求后返回一些数据给客户端,然后客户端再对这些数据进行解析和处理就可以了。

HTTP协议的主要特点

1:支持C/S模式

2:简单快速(客户端向服务器请求时,只需传送请求方法和路径)

3:灵活(HTTP运行传送任意类型的数据对象)

4:无连接:(无连接的含义是每次连接请求只处理一个请求。服务端处理完客户请求后,并收到客户端的应答,即断开连接。采用这种方式可以节省传输时间)

5:无状态:HTTP协议是无状态的协议。无状态是指协议对于事物的处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则必须重传,这样可能导致每次连接传达的数据量增大。另一方面,服务器不需要先前先前信息时它的应答就快了。

在Android上发送HTTP请求的方式:HttpURLConnection和HttpClient

1:HttpURLConnection

a、首先获得HttpURLConnection实例

URL url = new URL("http://www.baidu.com");
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();

b、设置HttpURLConnection的方法(GET/POST)

GET表示希望从服务器那里获得数据,而POST则表示希望提交数据给服务器&。

httpURLConnection.setRequestMethod("GET");
httpURLConnection.setRequestMethod("POST");

c、获得服务器返回的输入输出流,对输入流/输出流进行读/写操作

d、调用disconnect()方法将这个http连接关闭掉

2:HttpClient(一个接口)

http://www.jb51.net/article/73371.htm

GET方式  

a、创建一个DefaultHttpClient实例

HttpClient httpClient = new DefaultHttpClient();

b、创建一个HttpGet对象,并传入目标的网络地址,然后调用HttpClient的execute()方法

HttpGet httpGet = new HttpGet("http://www.baidu.com");

HttpResponse httpResponse =  httpClient.execute(httpGet);

c、执行execute()方法后会返回一个HttpResponse对象,服务器所返回的所有信息就会包括在这里面。通常情况下我们就会取出服务器返回的状态码,如果等于200就说明请求和响应都成功了。

if(httpResponse.getStatusLine().getStatusCode==200){

//请求和响应都成功了

}

POST方式

a、创建一个DefaultHttpClient的实例

HttpClient httpClient = new DefaultHttpClient();

b、创建一个HttpPost对象,并传入目标的网络地址

HttpPost httpPost = new HttpPost("http://www.baidu.com");

c、创建一个Entity对象,并将数据存入Enitity中。然后调用httpPost的setEntity()方法将构造好的Entity传进去。

httpPost.setEntity(xxxx);

HttpResponse httpResponse = httpClient.execute(httpPost);

d、执行execute()方法后悔返回一个HttpResponse对象,服务器所返回的所有信息就会包含在这里面。通常情况下我们都会先取出服务器所返回的状态码,如果等于200就说明请求和响应都成功了

if(httpResponse.getStatusLine().getStatusCode()==200){

//请求和响应成功

}

三:选择题

1:WebView中可以用来处理js中警告、确认等对话框的是:WebChromeClient

2:LocalManager获取位置信息的途径下列说法正确的是:

a、 GPS定位更加精确,缺点是只能在户外使用。

b、获取用户位置信息,我们可以同时使用其中一个,也可以同时使用两个

c、GPS定位耗电严重,并且返回用户位置信息的速度远不能满足用户需要

3:android的MVC模式

M是逻辑模型。

V是试图模型,对应XML文件

C是控制模型,对应Activity

4:Android的自动恢复功能能够完成:恢复备份设置和数据来重新安装程序。

5:android的动画类型

帧(Frame)动画、补间动画(Tween)、属性动画

6:关于ServiceConnection接口的onServiceConnected()方法的触发条件描述正确的是:

bindService()方法成功调用的同时onBind()方法返回IBinder对象。

7:DVM指dalivk的虚拟机,每一个安卓应用程序都在它自己的进程中运行,都拥有一个独立的Dalivk虚拟机实例。而每一个DVM都是Linux中的一个进程,所以说可以认为是同一个概念。

8:IntentService和Service的区别

IntentService是继承Service的,那么它包含了Sevice的全部特性,当然也包含Service的生命周期。IntentService与Service不同的是,IntentService在执行onCreate()方法时,内部开了一个线程,去执行耗时操作。

9:Android系统对下列哪些对象提供了资源池:Messae与AsyncTask

10:下面哪条语句可以构造正确的对话框( B D)

B:AlertDialog.Builder builder = new AlertDialog.Builder(context);

.D:ProgressDialog dialog = new ProgressDialog(context);

11:下列哪些情况下系统会弹出Froce Close对话框

应用运行时抛出了OutOfMemoryError,
应用运行时抛出了RuntimeException

转载于:https://my.oschina.net/FlyinTang/blog/752617

Android复习强化笔记(二)相关推荐

  1. android VectorDrawable使用笔记(二)

    (2)使用动态的VectorDrawable VectorDrawable和IconFont的优势,可以很轻易地使用动画 <?xml version="1.0" encodi ...

  2. android opengl旋转,Android openGl学习笔记二,gl的旋转、位移、放大缩小

    这章文章是对上一篇的进一步学习,最终以达到类似动画效果的目的. 不管什么时候参考资料放在第一位:学习参考资料 这个是本人经过层层筛选后感觉比较全且比较易懂的文章了,学习记录将按照此链接的博客逐步深入学 ...

  3. c++语言自定义操作符,C++语言复习笔记二

    C++语言复习笔记二 零.OOP 特征:抽象-封装-继承-多态 一.自定义数据类型 1.类 class 类名 { private: 私有成员(本类) public: 公共成员(所有) protecte ...

  4. 深度强化学习笔记(二)——Q-learning学习与二维寻路demo实现

    深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 文章目录 深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 前言 理论 什么是Q-Learning 算 ...

  5. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

  6. [安卓开发笔记二]android Studio通过jni调用C++代码

    [安卓开发笔记二]android Studio通过jni调用C++代码 16/12/11 更新 此博客基于安卓android studio 1.5所写,现在已经有了android studio2.2的 ...

  7. 疯狂Android讲义 - 学习笔记(二)

    疯狂Android讲义 - 学习笔记(二) Android应用的用户界面编程 2.1 界面编程与视图(View)组件 Android应用的绝大部分UI组件放在android.widget.androi ...

  8. Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件(学习笔记)

    关于 AudioRecord Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord,前者是一个更加上层一点的API,它可以直接把手机麦克风 ...

  9. 【Android笔记 二】Location获取地理位置信息(上)

    2011 7 22暑假实训的第五天,跟大家分享以下我对Android location的学习吧,这是一个最基本的获取地理位置信息的入门,下一次给大家介绍更质能化的地理位置选择Criteria,今天就先 ...

  10. Android第二讲笔记(约束布局ConstraintLayout)

    目录 为什么要使用约束布局ConstraintLayout? 约束布局基本属性 约束布局简单使用方法 示例 示例一(仿QQ消息) 示例二(仿微信登陆界面) 示例三(仿QQ音乐界面) 补充 写在最后 S ...

最新文章

  1. 百度信息流和搜索业务中的弹性近线计算探索与应用
  2. qpython手机版-QPython,一个在手机上运行Python的神器
  3. 【C/C++】代码优化技巧
  4. MySQL事务隔离级别和Spring事务关系介绍
  5. 修改mysql编_修改mysql编码
  6. [hdu1242]优先队列
  7. Leetcode每日一题:191.number-of-1-bits(位1的个数)
  8. mysql通过命令添加1条数据
  9. 苹果 5G 掉队?!
  10. 随机抽取文件内容中的一行
  11. Struts Tiles 页面模板引擎初实践
  12. shell 监控判断进程是否存在,如果不存在就重新启动脚本。
  13. C# 利用iTextSharp画PDF
  14. SM2246EN+闪迪15131
  15. matlab 角速度,从您的移动设备获取并绘制角速度和方向数据
  16. Linux系统:page fault
  17. linux下filezilla使用教程,FTP工具filezilla使用教程
  18. 打造自己备份的系统镜像
  19. ubuntu16.04安装onlyoffice
  20. Eigen中四元数Quaterniond的初始

热门文章

  1. excel处理几十万行数据_Python处理Excel数据
  2. 西南林业大学计算机考研,西南林业大学考研难吗
  3. 长春理工大学计算机科学与技术学分,计算机科学与技术专业本科人才培养方案-长春理工大学教务处.PDF...
  4. c++开发软件_Windows下学习C语言有哪些集成开发软件?
  5. 服务器传输文件损坏,使用ftplib将文件传输到FTP服务器后,文件已损坏
  6. redis-hmap --go
  7. python-图书管理系统2-整体 代码架构
  8. python软件包版本查询的方法
  9. go语言读取文件的方法-1
  10. jlabel 不能连续两次set_请问一个JAVA中JLabel的setFont()问题?