`

APIDemo常用代码解析(持续更新)

阅读更多
1.关于Dialog
    |--- com.example.android.apis.app/AlertDialogSamples.java
    里面包含了Dialog的各种用法,有10种不同的Dialog实例。
    |--- com.example.android.apis.app/FragmentDialog.java
    使用DialogFragment来实现Dialog,可以使用onCreateView()来创建Dialog布局,也可以使用DialogFragment类的getDialog()方法,在里面可以使用之前创建Dialog的方法,返回一个Dialog
    Android官方推荐使用DialogFragment。
 
2.关于Pregerence
    |--- com.example.android.apis.preference
    这个包里面介绍了Preference的用法,包括使用Code和XML(addPreferencesFromResource)两种方法来实现preference布局,使用setListFooter可以在底部添加一个布局(代码里面是添加一个Button在底部)
 
3.关于Service
    创建Servcie的方法有startService()和bindServcie()两种:由startService()创建的服务的目的只是服务的启动和终止,而bindServcie()创建的的服务是为了服务的远程控制(一般都会获得一个服务对象实例).
    |--- com.example.android.apis.app/LocalServcie.java
    由startService()创建的服务调用完onCreate()方法后,将继续调用onStartCommand()方法,该方法有返回值,可以通过该返回值来设置Servcie被强行关闭之后是否重新再启动    
    通过在代码里面添加Log,得到bindServcie()的执行流程:1.客户端请求连接服务bindServcie()----->2.在绑定的服务生成之后,Android会调用服务的onBind()回调方法,用来处理服务绑定,onBind()方法返回一个IBinder对象,用于与服务通信----->3.客户端的ServcieConnection对象的onServiceConnected(cn,IBinder)方法使用第2步传递的IBinder对象,调用服务端的getService()得到服务实例.
    |--- com.example.android.apis.app/RemoteServcie.java    
    AIDL是一种接口定义语言,用来约束两个进程之间的通信规则,供编译器生成代码,用来实现Android设备上两个进程间的通信。
    以ISecondary.aidl文件为例,Android会根据AIDL文件中定义的接口自动生成绑定远程服务所需要的代码,整个bindServcie()的执行流程如下:
    1.进程A调用bindServcie()请求连接RemoteService
    2.进程B在服务生成之后回调onBind()方法,生成用于处理Binder IPC的IBinder对象,并返回
    3.进程A调用回调方法onServiceConnected()方法,利用onBind()返回的IBinder,将其传递给IScondary.Stub.asInterface()函数,并使用它生成与RemoteService服务绑定在一起的服务代理对象ISeondary.Stub.Proxy,最后将其保存到mSecondaryService成员变量中。至此,RemoteService的ISecondary接口的绑定就完成了。
    4.进程A使用服务代理对象ISeondary.Stub.Proxy,调用RemoteService服务的getPid()代理方法
    5.Binder IPC:服务代理对象ISeondary.Stub.Proxy向服务Binder对象ISeondary.Stub传递Binder IPC数据
    6.进程B调用RemoteService服务的getPid() Stub方法,ISeondary.Stub服务Binder对象获取Binder IPC数据后,会调用RemoteService服务里面实现的getPid() Stub方法,将服务进程ID返回给进程A
0
1
分享到:
评论

相关推荐

    Android的Apidemo 的代码分析

    以下是根据提供的内容片段对Android Apidemo中一些关键部分的代码分析知识点的梳理。 1. 示例解析(1):创建ApiDemo示例 这个部分通常会涉及到如何搭建一个基础的Android项目结构,包括Activity的创建和...

    android ApiDemo

    android ApiDemo android ApiDemo

    android apidemo.apk

    android apidemo.apk

    Google官方API(Android ApiDemo)

    Android ApiDemo是由Google提供的一个官方示例代码库,旨在帮助开发者更好地理解和使用Android SDK中的各种API。这个压缩包包含了大量的预编译的示例应用,覆盖了Android开发中的核心功能和特性,是Android初学者...

    Android1.5_ApiDemo

    ApiDemo提供了创建和使用Content Provider的代码,这对于跨应用的数据访问至关重要。 5. **BroadcastReceiver**:BroadcastReceiver用于接收系统或自定义广播事件。在ApiDemo中,你可以看到如何注册、接收和响应...

    android apidemo-17

    这个示例程序集为开发者提供了丰富的代码实例,详细展示了 Android 操作系统 API 的各种功能和用法。通过深入学习和实践这些示例,开发者可以更好地理解和掌握 Android 平台的开发技巧。 1. **API 级别 17**:这是...

    android 示例源码 apidemo

    由于 Apidemo 随着 Android SDK 更新而更新,因此它也反映了 API 的最新变化。开发者可以通过对比不同版本的 Apidemo,了解 API 的新增、删除或变更情况,这对于保持代码的兼容性和最新性至关重要。 总之,`Android...

    Android官方apidemo

    2. 数据操作:ApiDemo展示了SQLite数据库的使用,包括创建表、插入、查询和更新数据的操作。同时,还有SharedPreferences的示例,用于存储轻量级的配置数据。 3. 网络通信:网络请求部分包括HttpURLConnection、...

    Android 5.0 ApiDemo+可运行源码项目

    【Android 5.0 ApiDemo】是针对Android操作系统版本5.0(代号为Android Lollipop)的一个示例代码库,旨在帮助开发者理解和探索新版本API的功能和特性。这个项目包含了一系列可运行的源码,展示了如何在Android 5.0...

    Android ApiDemo

    ApiDemo提供了多种Adapter的实例,解释了数据绑定和视图更新的方法。 四、多媒体与图形 1. 图像处理:ApiDemo演示了如何加载、显示、裁剪和旋转图片,以及使用Bitmap进行像素级操作。 2. 音频视频:展示了如何...

    android中文apidemo详解,适合新手阅读快速上手

    在Android开发中,ApiDemo提供了一系列预设的示例代码,帮助开发者了解如何启动一个新的Android项目。它展示了如何配置AndroidManifest.xml文件,创建主活动(MainActivity),以及如何在布局文件中添加UI元素。 2...

    最新google官方ApiDemo源码

    以下将详细解析这个ApiDemo中的关键知识点。 一、Android 4.4新特性 1. **Notification增强**:Android 4.4引入了改进的通知系统,ApiDemo中展示了如何创建更丰富、更交互式的通知,包括heads-up通知和可扩展通知...

    学习Android Apidemo从这开始

    在Android开发领域,Apidemo是一个非常重要的学习资源,它包含了大量的示例代码,帮助开发者深入理解Android API的各种功能和用法。标题“学习Android Apidemo从这开始”表明我们将从基础开始,逐步深入地探索这个...

    APIdemo源码

    它包含了丰富的实例代码,帮助开发者更好地理解和学习 Android 的核心功能和组件。通过对 API Demo 的深入研究,我们可以掌握 Android 开发中的诸多技巧和最佳实践。 1. **Android SDK组件使用** - **Activity**:...

    Google官方API(Android-12 ApiDemo)

    **Android API 深度解析:Google 官方 API(Android-12 ApiDemo)** 在 Android 开发中,Google 官方API扮演着至关重要的角色。这些API为开发者提供了丰富的功能,使得应用程序能够实现从基础操作到复杂交互的一切...

    APIDemo.rar

    【标题】"APIDemo.rar" 是一个包含.NET WebAPI示例代码的压缩包,它展示了如何实现基本的数据操作功能,如添加、删除、修改和查询,并且支持本地及跨域接口调用。 【描述】中的知识点详解: 1. **.NET WebAPI**:...

    android Apidemo

    在网络通信方面,ApiDemo涵盖了HttpURLConnection、OkHttp、Retrofit等网络请求库的用法,同时还有WebSocket、JSON解析(如Gson、Jackson)等相关示例。此外,它还包含了异步任务(AsyncTask)、IntentService和Job...

    腾讯微博APIDemo.rar

    10. **持续更新**:随着微博平台的更新,SDK和API也会相应调整。开发者需要关注腾讯微博开放平台的官方公告,及时更新SDK以保持兼容性。 通过学习和实践这个腾讯微博APIDemo,开发者可以掌握微博平台的接入流程,...

    android 2.3 apidemo

    虽然现在Android版本已经更新到了12,但ApiDemo中的很多基础知识和原理仍然适用,对于初学者和有经验的开发者来说都是宝贵的参考资料。同时,结合博客链接(https://wangzhigang2.iteye.com/blog/1047414)提供的...

    下载ApiDemo

    通过ApiDemo,开发者可以快速熟悉Android系统的更新,提升开发效率。 ApiDemo覆盖了Android SDK中的大量功能,包括但不限于: 1. **用户界面组件**:如按钮、文本框、列表视图、滑动抽屉、网格视图等,以及自定义...

Global site tag (gtag.js) - Google Analytics