Android开发之路-多线程

Android开发之路-多线程,第1张

线程作为Android开发中相对而言较为高阶的知识,其中用到相关的知识点是非常的多,所以在我们需要进行设计或者写多线程的代码就必须要进行相对谨慎的处理,这样就由必要对其要有着比较系统化的认知

我们一般将Android应用分成为两种:主线程和工作线程;主线程主要是用来进行初始化UI,而工作线程主要是进行耗时 *** 作,例如读取数据库,网络连接等

Android系统是以进程为单位来对应用程序资源进行限制,这个问题的可以解释为:一个进程最多能够开几个线程?最好能开几个?但实则这个是没有上限这一说,主要是因为资源的限制

Android中关于主线程的理解:Android的主线程是UI线程,在Android中,四大组件运行在主线程中,在主线程中做耗时 *** 作会导致程序出现卡顿甚至出现ANR异常,一个

在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。

线程总的来就是进程的一个实体,是CPU进行分派和调度的基本单位,拥有着比进程更小且能够独立运行的基本单位,线程本身基本上是不拥有系统资源,仅拥有一点在运行过程中必须拥有的资源,但它可与同属一个进程中的其他进程进行共享其所拥有的所有资源

线程状态有些地方将之分为5中状态,而且在Java Jdk中线程被其定义为6中状态,我们可以对其进行类比

普遍定义的5中状态:新建,就绪,运行,阻塞, 死亡

Java Jdk 定义状态

线程阻塞是指在某一时刻的某一个线程在进行运行一段代码的情况下,突然另一个线程也要进行运行,但在运行过程中,那个线程执行完全运行之前,另一个线程是不可能获取到CPU的执行权,就会导致线路阻塞的出现

死锁也称之为抱死,意思就是说一个进程锁定了另外一个进程所需要的页或表是,但第二个进程同时又锁定了第一个进程所需的一页,这样就会出现死锁现象

简要介绍实现线程的三种方式:继承Thread,实现runnable,实现callable。这里有一点需要注意的是,实现callable是与线程池相关联的而callable很重要的一个特性是其带有返回值。当我们只需实现单线程时实现runnable更加利于线程程序的拓展

在线程开启之前进行调用 threadsetDaemon(true); 将thread设定成当前线程中的守护线程 使用案例

线程让步yield方法让当前线程释放CPU资源,让其他线程抢占

这种具体某个对象锁 wait & notify 方法与Condition 的 await以及signal方法类似; 全面这种方法的阻塞等待都可以是释放锁,而且在唤醒后,这种线程都是能够获取锁资源的,而这个门栓就跟阀门类似

第一阶段:Java面向对象编程

1Java基本数据类型与表达式,分支循环。2String和的使用、正则表达式。3面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。4对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。5Java异常处理,异常的机制原理。6常用的设计模式:Singleton、Template、Strategy模式。7JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。8Java集合介绍:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。9JavaI/O输入输出流:File和类,字节流InputStream和,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。10Java高级特性:反射、代理和泛型。11多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。12Socket网络编程。

第二阶段:JavaWeb开发

1Java解析XML文件DOM4J。2MySql数据库的应用、多表连接查询的应用。3Jsp和Servlet应用。4>

第三阶段:androidUI编程

1、Android开发环境搭建:Android介绍,Android开发环境搭建,第一个Android应用程序,Android应用程序目录结构。

2、Android初级控件的使用:

TextView控件的使用Button控件的使用方法EditText控件的使用方法View的使用方法RadioButton的使用方法Checkbox的使用方法Menu的使用方法

3、Android高级控件的使用:

的使用方法ListView的使用方法GridView的使用方法Adapter的使用方法Spinner的使用方法Gallary的使用方法ScrollView的使用方法

4、对话框与菜单的使用:

Dialog的基本概念AlertDialog的使用方法的使用方法Menu的使用方法自定义Menu的实现方法

5、控件的布局方法:

线性布局的使用方法相对布局的使用方法表格布局的使用方法

6、多Acitivity管理:

xml文件的作用Intent的使用方法使用Intent传递数据的方法启动Activity的方法的使用方法ActivityGroup的使用方法

7、自定义控件实现方法:

自定义ListView的实现方法可折叠ListView的使用方法自定义Adapter的实现方法自定义View的实现方法动态控件布局的上实现方法

第四阶段:android网络编程与数据存储

1、基于Android平台的>

>

2、Android数据存储技术:

SQLite3数据库简介SQL语句回顾SQLite3编程接口介绍SQLite3事务管理SQLite3游标使用方法SQLite3性能分析访问SDCard的方法访问的方法

3、使用方法:

实现共享数据、URI的解析与UriMatcher、ContentUris的使用、使用 *** 作、的监听Android当中的异步 *** 作:Handler的使用方法;异步任务的基本概念;AsyncTask的使用方法。

第五阶段:android手机硬件管理

1、地图及定位技术:GPS简介;的使用方法;在GoogleMap上添加标记的方法;查询某地附近建筑的方法;使用GoogleMap实现点对点导航。

2、传感器使用方法:方向、加速度(重力)、光线、磁场、距离、温度等传感器的使用。

3、近场通信技术:NFC技术简介;NFC技术是用场景介绍;NFC技术实现方法。

4、媒体管理技术:MediaPlayer的使用方法。

5、触摸屏技术:手势识别;多点触摸技术。

第六阶段:Android图形编程技术

1、图形处理基础:2D图形编程基础;2、点、线、面等基本图形元素绘制方法;3、Android动画框架简介;4、位移动画的实现方法;5、淡入淡出动画的实现方法;6、旋转动画的实现方法;7、Matrix的使用方法。第七阶段:Android游戏开发1、Android游戏开发:Android游戏开发概述;2、SurfaceView的使用方法;3、物理小球技术;4、碰撞检测技术;5、、文字和背景音乐等资源的使用方法;6、游戏引擎基础概念;7、Cocoa2d-Android引擎使用方法;8、OpenGLES使用方法。

执行AsyncTask的execute方法,会执行executeOnExecutor方法,该方法第一个参数是线程池,第二个是传给AsyncTask的参数

在该方法里,首先会调用onPreExecute方法,然后将传进来的参数赋值给mWorkerparams,再调用第一个参数线程池的execute方法,传入mFuture

如果是AsyncTask的默认线程池SerialExecutor,则只是用于排队,使AsyncTask提交的任务一个一个的执行。最终执行是放在THREAD_POOL_EXECUTER线程池中执行的

执行mFuture的run方法,最终调用mWorker对象的call方法,在call方法里,会执行doInBackground方法,返回一个Result对象,传入postResult方法里

在postResult方法里,会利用sHandler即主线程的handler把Result发送到主线程进行处理,在handler的handMessage方法中,会调用onPostExecute方法,将结果发送到主线程

如果需要更新进度,可在doInBackground方法里调publishProgress方法,传入进度信息,publishProgress方法里就会通过sHandler把进度信息传到主线程

以上就是关于Android开发之路-多线程全部的内容,包括:Android开发之路-多线程、我是个android程序员,想改行、第十一章 Android的线程和线程池等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9670276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存