android框架

基于Phone模块的Service实现

扶醉桌前 提交于 2019-12-10 05:30:30
1 Android 系统启动 1.1 总体启动框架图 (1) init进程启动 (2) Native服务启动 (3) System Server,Android服务启动 (4) Home启动 1.2 initial 进程 (system\core\init) init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程。 Init进程一起来就根据init.rc和init.xxx.rc脚本文件建立了几个基本的服务: servicemanamger zygote 。。。。 最后Init并不退出,而是担当起property service的功能。 关于init的详细信息,参考相关文章。 1.3 Zygote Servicemanager和zygote进程就奠定了Android的基础。Zygote这个进程起来才会建立起真正的Android运行空间,初始化建立的Service都是Navtive service.在.rc脚本文件中zygote的描述: service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server

关于ANDROID事件-Android框架工程师的回复

怎甘沉沦 提交于 2019-12-10 03:12:09
Event dispatching is relatively simple. There are two major models: - Focus-based dispatching is used for key events and trackball events. - Position-based dispatching is used for touch events. In all cases, the dispatching you probably care about starts with an IPC coming from the window manager into your process, telling a specific window about an event. This is received in the internal VIewRoot class. This in turn simply calls the appropriate dispatchXxx() function on the top-level view of the hierarchy, which dispatches it down to child views based on either the current focus target or the

介绍一个Android UI设计网站

ぐ巨炮叔叔 提交于 2019-12-10 01:23:23
十分有趣 。“Ice Cream Sandwich (Android 4.0) 是我们目前为止最大的一次重新设计——对用户和开发者皆是如此。我们用新的交互和样式增强了UI框架,能让你创建比以往更加简单更加炫丽的Android 应用。为帮助你创建如此的应用,我们要介绍一个网站 Android Design ( http://developer.android.com/design/index.html ):一个你学习创建世界级Android用户界面的准则、构造块以及模式的地方。不论你是一名UI专职人员,还是一名扮演UI设计人员的普通开发者,这些文档都能向你展示如何作出好的设计决策,巨细无遗。” 转载请注明: Linux人社区> 英文资讯翻译专版.编译 英文原文: Introducing the Android Design Site posted by Thom Holwerda on Thu 12th Jan 2012 23:06 UTC Pretty interesting . "Ice Cream Sandwich (Android 4.0) is our biggest redesign yet - both for users and developers. We've enhanced the UI framework with new interactions and

Android 基础

末鹿安然 提交于 2019-12-09 17:39:33
高内聚,低耦合。 内填充,外填充 设置组件填充父容器时存在两种方式 内填充的部分存在于组件空间内,相当于页边距的效果 padding—— 用于设置四边的内边距 paddingLeft 、 paddingRight 、 paddingTop 、 paddingBottom 外填充的部分存在与组件空间外,类似于边界的间隔 margin—— 用于设置四边的外部间距 marginLeft 、 marginRight 、 marginTop 、 marginBottom 时间驱动模型(守株待兔) 事件源(树),监听器(农夫),事件(兔子撞树) 监听器:为每个事件编写处理方法 将监听器对象注册给事件源 事件源发生某个事件时调用监听器中对应的方法完成事件处理 Java的 三大框架 (Spring,Struts,Hidernate) spring 利用它的IOC和AOP来处理控制业务(负责对数据库的操作) struts 主要负责表示层的显示 hibernate 主要作用是数据的持久化到数据库 Java的三大特性 Java语言的三大特性即是:封装、继承、多态 Android常用视图 视图(view)是可视化的界面元素 任何可视化组件都需要从android.view .View类继承 视图类通常分3种:布局类、视图容器类、和基础视图类 布局类: 1. 线性布局 ( LinearLayout )

【安卓深度控件开发(1.4)】Creating Custom Views (官方示例文档汉化版)(4)

假装没事ソ 提交于 2019-12-09 15:10:36
<h2>视图的优化</h2> <p>您现在有一个精心设计的视图,响应手势和平滑过渡,现在需要确保视图流畅。为了避免一个 UI 在播放过程中感觉缓慢或断断续续,您必须确保您的动画始终运行在每秒 60 帧。</p> <p> </p> <h3>少量的频繁处理</h3> <p>为了加快您的视图,在 <a href="http://developer.android.com/reference/android/view/View.html#onDraw(android.graphics.Canvas)" target="_blank">onDraw()</a> 中消除不必要的被频繁调用的例程代码,这将给你最大的回报。特别是在 <a href="http://developer.android.com/reference/android/view/View.html#onDraw(android.graphics.Canvas)" target="_blank">onDraw()</a> 中创建对象,因为这可能触发造成缓慢的垃圾回收。在初始化期间或动画之间分配对象。永远不要在动画运行时分配新对象。</p> <p>除了让 <a href="http://developer.android.com/reference/android/view/View.html#onDraw(android

【安卓深度控件开发(1.3)】Creating Custom Views (官方示例文档汉化版)(3)

假如想象 提交于 2019-12-09 15:03:57
<h2>创建视图交互</h2> <p>图形用户界面只是创建自定义视图的一部分。您还需要使视图以模仿现实世界行动相似的方式响应用户输入。对象始终应像真正对象做的一样。例如,图像应不立即弹出并重现在某个地方别的地方,因为在现实世界中的对象不会这样做。相反,图像应从一个位置移动到另一个位置。</p> <p>用户也感觉到细微的行为或界面上响应最佳模仿现实世界中的细微之处。例如,当用户甩动一个 UI 对象,他们应该感觉动作继续,摩擦然后在最终停止,最后的位置超出甩动发生时的位置。</p> <p>这节课演示如何使用 Android 框架的功能,将这些真实世界的行为添加到您的自定义视图。</p> <h3>处理输入的手势</h3> <p>像许多其他 UI 框架,android 系统支持输入的事件模型。用户操作都变成触发回调的事件,您可以重写自定义您的应用程序如何响应用户的回调。在 Android 系统中最常见的输入的事件是触摸,而触发 <a href="http://developer.android.com/reference/android/view/View.html#onTouchEvent(android.view.MotionEvent)" target="_blank">onTouchEvent(android.view.MotionEvent)</a>。重写此方法以处理事件:</p

Android面向切面编程(AOP)

喜你入骨 提交于 2019-12-09 14:07:05
Android面向切面编程(AOP) AOP简介 什么是AOP AOP术语 AOP与OOP区别 AOP的实现方式和原理 Android中使用AspectJ 配置环境 常用注解介绍 代码实现 其他 AOP简介 什么是AOP AOP(Aspect Oriented Programming),中译为 面向切面编程 ,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是函数式编程的一种衍生范型。AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高代码的灵活性和可拓展性。在Android中,AOP主要用于 日志记录,权限控制,性能统计,安全控制,事务处理,异常处理,热修复,埋点 等功能。 AOP术语 通知、增强处理(Advice) :就是你想要的功能,也就是上面说的日志、耗时计算等。 连接点(JoinPoint) :允许你通知(Advice)的地方,那可就真多了,基本每个方法的前、后(两者都有也行),或抛出异常是时都可以是连接点(spring只支持方法连接点)。AspectJ还可以让你在构造器或属性注入时都行,不过一般情况下不会这么做,只要记住,和方法有关的前前后后都是连接点。 切入点(Pointcut) :上面说的连接点的基础上,来定义切入点,你的一个类里,有15个方法,那就有十几个连接点了对吧

Android电话系统之RIL-Java

僤鯓⒐⒋嵵緔 提交于 2019-12-09 11:37:11
Android RIL-Java RIL-Java在本质上就是一个RIL代理,起到一个转发的作用,是Android Java概念空间中的电话系统的起点。在RIL-D的分析中,我们知道RILD建立了一个侦听套接口,等待RIL-Java的连接。一旦连接成功,RIL-JAVA就可发起一个请求,并等待应答,并将结构发送到目标处理对象。在RIL-Java中,这个请求称为RILRequest。为了直观起见,我还是不厌其烦的给出RIL-Java的框架图。 RIL-Java的大框架包含了四个方面: Receiver,Sender,CommandInterface,异步通知机制 (1) Command Interface 在ril.java源代码中,我们可以看到RIL-JAVA对象提供了如下的Command Interface: … getlccCardStatus getCurrrentCalls dial acceptCall rejectCall sendDTMF sendSMS setupDataCall setRadioPower … 为什么要定义这些接口呢?这函数接口不是凭空捏造出来的,这些都是电话的基本功能的描述,是对Modem AT指令的提炼抽象。大多数Modem都是根据通讯协议提供接口,我们如果不熟悉通讯协议,请参阅3GPP的相关文档,以及自己使用的Modem的SPEC说明。 V

android大扫盲之SurfaceView,SurfaceHolder,SurfaceHol...

喜你入骨 提交于 2019-12-09 10:56:57
最近接触到了SurfaceView,SurfaceHolder,SurfaceHolder.CallBack,一直不求其解,现在来粗浅认识一下它们。 先看一下官方的定义: 1.SurfaceView SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。 surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。surfaceview提供了一个可见区域,只有在这个可见区域内 的surface部分内容才可见,可见区域外的部分不可见。surface的排版显示受到视图层级关系的影响,它的兄弟视图结点会在顶端显示。这意味者 surface的内容会被它的兄弟视图遮挡,这一特性可以用来放置遮盖物(overlays)(例如,文本和按钮等控件)。注意,如果surface上面 有透明控件,那么它的每次变化都会引起框架重新计算它和顶层控件的透明效果,这会影响性能。 你可以通过SurfaceHolder接口访问这个Surface.用getHolder()方法可以得到这个接口。 surfaceview变得可见时,surface被创建;surfaceview隐藏前,surface被销毁。这样能节省资源。如果你要查看

ApiCloud开发经验总结

China☆狼群 提交于 2019-12-08 03:34:57
1. 引擎或模块问题:遇到应用层无法解决的问题,如果能确定需要引擎和模块支持的,不要自己想办法绕过去,要第一时间在开发者社区提交问题,或找APICloud项目经理提出。 !!!注意!!!: 在开发者社区中,会有版主和APICloud技术支持对您的问题进行验证和解答。 !!!注意!!!: 定制平台项目问题提出后2天之内没有解决的,可以直接找APICloud项目总监投诉。 2. 开发工具:推荐使用Sublime Text+APICloud插件,调试工具使用自定义Loader,真机同步使用WiFi真机同步,日志输出使用WiFi日志输出。 推荐视频: Sublime使用教程Window&Mac 推荐文档: Sublime插件使用说明 3. 前端框架:尽量不要使用jQuery、AngularJS、BootStrap等重型的框架,摆脱对$的依赖,培养自己动手的习惯,但是可以根据功能需求在特定页面中使用功能独立的Mobile First框架 默认样式设置、DOM操作和字符串处理推荐使用APICloud前端框架(api.js和api.css) 移动端UI框架推荐使用AUI 4. 屏幕适配:要正确设置viewport,建议使用720*1280尺寸的UI图,优先考虑绝对计量类的单位 px,应先在UI效果图中(如720x1280尺寸图)量出元素的宽或高对应的 px 值,再除以屏幕倍率