☆ 一些闲话

Android自从4.1版本后,系统性能和体验能跟ios有一拼
4.0以下转的Java的程序员,
他如果写点比较次的代码,然后跟着这个比较次的系统,一起获得更加次的体验。
4.1之后,系统性能开始争气了,
他如果写点比较次的代码,然后系统也会能起到点遮羞的作用。


☆ Java转Android优势

1.语言相通,特性相似,入门门槛低
2.编程相关基础比较扎实
3.自学能力比较好(包括搜索能力,阅读,动手,自我管理)等


☆ Android开发前提

1.熟悉ide
2.熟悉安卓提供的开发框架
3.熟悉java及其他编程知识


☆ Android的学习内容

◇ 四大组件

Activity
中文翻译叫活动,用来表现功能,负责跟用户交互
Service
中文翻译叫服务,是后台运行服务,不提供界面呈现
BroadcastReceiver
中文翻译叫广播接收器,用于接收广播.一种广泛运用的在应用程序之间传输信息的机制.
ContentProvider
中文翻译叫内容提供器
支持在多个应用中存储和读取数据,相当于数据库.
是一个第三方应用数据的访问方案.

◇ 其他内容

Intent
中文翻译叫意图,
它的功能是 传话人
它的使用的场景是,比方说在一个应用程序当中用户有了操作
然后Intent就操作动作,涉及到的数据都进行一个描述记录,然后它就告诉了Android系统,Android就根据它的描述就去找组件去干活,就是调用组件。Android系统要是司令指挥部,Intent就是通信兵之类的角色呀。
每个应用程序是作战兵团呀,应用程序之间可以让Intent传递消息,应用程序内部的Activity/Service之间也可以用Intent传递消息。
Handler
Handler是Android操作系统中的线程通信工具,它主要由两个作用:
(1)安排消息或Runnable在某个主线程中某个地方执行
(2)安排一个动作在另外的线程中执行。
每个Handler对象维护两个队列(FIFO),消息队列和Runnable队列,
都是有Android操作系统提供的。
Handler可以通过这两个队列来分别:
发送、接受、处理消息–消息队列;
启动、结束、休眠线程–Runnable队列;
Handler的使用方法大体分为3个步骤:
1.创建Handler对象。
2.创建Runnable和消息。
3.调用post以及sendMessage方法将Runnable和消息添加到队列。

Handler就也是通信兵吧,但是感觉上是个兵团内部的通信兵。打个比方要弄个下载功能,这个功能比较耗时,写在主线程当中,就容易把主线程堵死了,然后5秒钟没有完成,Android司令部就说强制关闭吧。这个时候,可以让Handler去做个安排,把这个弄到子线程当中去。然后主线程干其他的事,这就是异步处理。

Adapter
中文翻译叫适配器, 后台就是数据,前台就是UI显示(view)。Adapter就是在前台和后台中间的一个东西。是个接口。实现它来适配显示的。
事件的传递方式
onClick,onTouch
JNI
洋文是Java Native Interface,中文翻译是Java本地接口,它提供了很多接口跟其他语言进行通信(C或者C++)
AIDL
1.洋文是Android Interface Definition Language, 中文翻译是安卓接口定义语言。Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。
2.比方说我的安卓系统中有很多应用程序,我的A应用程序提供了一些服务,我的其他应用程序就想用A的这些服务。那么应该怎么办?
Android就指定了一个制度,也可以叫一个解决方案 远程过程调用(Remote Procedure Call,RPC),这个方法其实特别简单,就是用一种接口定义语言(Interface Definition Language,IDL)来公开公开服务的接口.
3.我们知道4个Android应用程序组件中的3个(Activity、BroadcastReceiver和ContentProvider)都可以进行跨进程访问,另外一个Android应用程序组件Service同样可以。因此,可以将这种可以跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。
4.建立AIDL服务的步骤
建立AIDL服务要比建立普通的服务复杂一些,具体步骤如下:
(1)在Eclipse Android工程的Java包目录中建立一个扩展名为aidl的文件。该文件的语法类似于Java代码,但会稍有不同。
(2)如果aidl文件的内容是正确的,
ADT(抽象数据类型,abstract data type)会自动生成一个Java接口文件(*.java)。
(3)建立一个服务类(Service的子类)。
(4)实现由aidl文件生成的Java接口。AIDL接口只支持方法,不能声明静态成员;不会有返回给调用方法的异常。
(5)在AndroidManifest.xml文件中配置AIDL服务,
尤其要注意的是,
标签中android:name的属性值就是客户端要引用该服务的ID,
也就是Intent类的参数值。

☆ Android重点

  1. 主要是在UI效果上需要花大量时间
  2. NDK的开发
  3. SDK的开发
    font color=red>SDK广告
    就是植入程序里面的广告需要依赖的第3方API。
    比如你想在别人使用你开发的程序时展示广告为你带来收入,
    你就可以选择下载别人的广告SDK(比如哇棒,admob),
    调用它们提供的API,
    API会取得和展示广告,
    这样你的程序就能在适当的位置显示它们的广告,
    当有用户点击广告时,
    你就会从广告提供商哪里获得一定比例的推广提成。
    所以SDK广告就是内置于程序内的广告开发工具包,
    由广告提供商提供。

☆ Android工作经验

  1. 常见的问题和难点都可以在StackOverflow上找到
  2. 常用功能/控件的实现也可以在GitHub上找到
  3. 控制内存开销,优化onTouch事件是永恒的主题
  4. 手机上非常常用的『下拉刷新』功能,不同App之间还是很有差异的
  5. Android的UI线程可无法获得如iOS下那么高的优先级
  6. 当前国内都是以iOS做设计,Android照搬的做法,并且由此产生很多雷同脑残但坚定不移的设计
  7. 抛弃『UI元素像素位置』这个概念,Android本身是允许通过设定元素像素位置来制作UI,但是这样做导致的结果就是大批量机器不适配,而且不要妄想通过获取屏幕大小来调整UI
  8. LinearLayout,这个在swing或者swt上可有可无的东西,在Android上是必须要精通
  9. Android SDK的一个恶心的地方,其内置的apache相关库不是最新的。
    是的,当你想着使用

关于Android那些事儿相关推荐

  1. Android那些事儿 成长中的Android(1)

    Android 是近年来在移动设备行业相当火热的词汇,在此我从交互设计的角度整理了此文章,文章分为三个部分,跟大家讨论Android的那些事儿. 第一部分:成长中的Android; ◆什么是Andro ...

  2. Android那些事儿 Android手机交互特性

    接上文<Android那些事儿 成长中的Android >.本文描述了与其它触屏手机系统和桌面系统不同的Android平台特性,这些特性需要更多的表现在我们开发的应用程序中,以保证这是一款 ...

  3. Android那些事儿(二)安卓手机交互特性

    http://wsd.tencent.com/2011/02/aboutandroid2.html 接上文<android那些事儿(一)成长中的Android >.本文描述了与其它触屏手机 ...

  4. [转] 网站性能优化之------------- 数据库及服务器架构篇

    转载自: http://blog.163.com/dangzhengtao@yeah/blog/static/7780087420098232213289/?fromdm&fromSearch ...

  5. 关于Android 工程师转成vue的三两事儿(2)--前端开发技巧

       前面的文章也提到了,我本身就是做android的,外加上刚开始做android的时候.学长对我的代码风格有很大的限制.所以我在学习最新的语言的时候,首先会想到的是代码的格式化.虽然说vue-cl ...

  6. (转)Android中JNI编程的那些事儿

    Android中JNI编程的那些事儿 首先说明,Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++--即通过JNI的方式来使用本地(Na ...

  7. Android 系统(98)---Android app 在线更新那点事儿(适配Android6.0、7.0、8.0)

    Android app 在线更新那点事儿(适配Android6.0.7.0.8.0) 一.前言 app在线更新是一个比较常见需求,新版本发布时,用户进入我们的app,就会弹出更新提示框,第一时间更新新 ...

  8. Android应用生死轮回的那些事儿(1) - installd初探

    Android应用生死轮回的那些事儿(1) - installd初探 前面我们讨论过dex2oat的过程,下面我们开始探索系统中的重要工具进程,installd守护进程. 我们有PackageMana ...

  9. 关于Android工程师转成vue的三两事儿(4)--webpack

     最近为了能够写一份值得参考的webpack文档,特意的去查了好多相应的书籍,博客.距离上次写的那篇文章好想也过去将近一周的时间了.我想是时候要准备下一篇文章了.不然就食言而肥了.  算了,技术类文章 ...

最新文章

  1. HDU2568 前进【水题】
  2. jSearch(聚搜) v1.1.0 发布,全新视觉体验
  3. 浏览器检测是否安装flash插件,若没有安装,则弹出安装提示
  4. python引用传递的区别_python的值类型和引用类型及值传递和引用传递的区别
  5. python sort 多级排序_Python使用sort和class实现的多级排序功能示例
  6. jquery表单验证
  7. g的python实现_Python Gevent
  8. 一文读懂Xgboost
  9. Cisdem DVD Burner for Mac(DVD光盘刻录软件)
  10. HP刀片带外管理系统OA各功能实例示范
  11. SYNwall:零配置物联网防火墙
  12. 实施工程师的发展前景
  13. Zotero文献题录和附件如何导入到NoteExpress?
  14. 东芝复印机2303出现f070_东芝复印机常见故障
  15. 分享几个实用的神器APP系列(四)
  16. Eclipse开发环境搭建
  17. 互联网+人社峰会召开腾讯开放三大能力建“人社”生态
  18. 简约纯色卡通蝴蝶Mac动态壁纸
  19. 原油CFD是什么?国内投资者如何交易原油CFD期货?
  20. Linux课程笔记 硬盘介绍及硬盘分区

热门文章

  1. Win10怎么查看磁盘空间使用情况?
  2. JVM命令行监控工具之jhat(Java Heap Analysis Tool)
  3. MyBatis数据持久化 SQL复用(可重用的 SQL 代码段)
  4. android 把数据保存到文件中的实例
  5. 京东商城软件测试工程师面试
  6. 字符串转整数(纯C语言)-考虑负数情况
  7. JavaScript中的 自动装箱 自动拆箱
  8. ubuntu 更新 docker 版本
  9. Docker 镜像管理(私有云阿里云)
  10. 推送加密的PDF报表