分类目录 : Android

浅谈ContentProvider

ContentProvider即内容提供者,它是Android系统中提供的专门用于不同应用间进行数据共享的组件。ContentProvider提供了一套标准的接口来获取及操作数据,准许开发者把自己的应用数据根据需求开放给其他应用进行增删改查,而无须担心直接开放数据库权限而带来的安全问题。系统预置了许多ContentProvider用于获取用户数据,比如消息、联系人、日程表等。 在以前介绍其它组件 [...]

浅谈MVP架构模式

MVP即Model-View-Presenter,它是在经典的MVC(Model-View-Controller)架构基础上延伸出来的一种架构模式。Google官方也给出了一个简单的MVP示例。 MVC与MVP MVP和MVC有很多共性,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。 模型关系图如下: Model:定义数据的格式,这一点与 [...]

JNI编程笔记四

本文重点介绍JNI字符串部分操作,由于字符串也是对象类型,所以字符串的操作与基本数据类型是有差异的。前面介绍了JNI在操作对象类型时,必须借助于相应的函数,JNI也提供了不同的字符串操作函数。由于不同编程语言之间底层字符串存储格式不同,所以在C与Java之间操作字符串时,如果包含了中文编码,而又没有做特殊处理,直接使用JNI提供的字符串函数,这时候容易出现中文的乱码问题,那么如何解决乱码问题呢? [...]

JNI编程笔记三

在使用JNI时最重要的是Java与C/C++如何传递数据,以及数据类型之间如何映射。本文重点需要了解的是JNI中类型和签名描述符的表示方式,以及它们与Java中数据类型的对应关系。要求可以借助Java虚拟机命令生成JNI签名。最后,列举了一些一般性示例,通过示例演示了如何在Java和C之间进行数据交互,例如基本数据类型之间和数组类型之间。 由于JNI在使用C/C++与Java交互时很相似,所以后 [...]

JNI编程笔记二

在上一篇文章中着重介绍了JNI编程的书写步骤,借助于所建议的操作步骤,我们实现了一个简单的JNI调用示例。今天继续JNI介绍,重点包括JNIEnv在C/C++中的实现方式,使用关键字JNIEXPORT、JNICALL以及extern "C"语法的目的,然后是JNI函数名称的命名规范,最后是JNI中的数据类型,包括基本数据类和引用数据类型。 JNIEnv简绍 在对JNIEnv分析之前,这里先介绍 [...]

JNI编程笔记一

JNI即Java Native Interface,它允许Java与其它计算机语言的代码进行交互。在这里,我们可以简单的理解为JNI就是为了实现和C或者C++交互而存在的。 一般我们称Java中与C或者C++交互的方法为本地方法,每一个本地方法前面都有一个native的修饰符,并且方法不需要在Java层实现,只需要进行方法声明即可。本地方法与抽象方法很相似,不同的地方在于将abstract替 [...]

JNI之C++语言四

这是在JNI之前的最后一篇关于基础知识介绍的博客,从下篇开始就可以正式进入JNI的介绍篇章了。本文介绍C++中剩余的部分点,主要包括C++中的四种显式类型转换符、运算符重载以及模板。显示类型转换符以及模板是我们需要着重理解的部分,特别是模板部分,它跟Java中泛型机制很相似,在C++中也应用场景也非常多。 类型转换 在Java中如果高数据类型向低数据类型转换需要进行强制转换,,如double类 [...]

JNI之C++语言三

在上文介绍了面向对象的部分特性,如类的定义和对象的创建,包括常用的构造函数、析构函数以及复制构造函数的使用。本文继续介绍面向对象的其它特性,包括单继承多继承以及如何解决多继承中的二义性,虚函数的使用和多态的实现,友元函数和友元类的使用。 上述特性涉及到friend和virtual两个关键字的使用,friend是在使用友元时使用,而virtual关键字在定义抽象类和实现时多态时使用。 友元函数和 [...]

JNI之C++语言二

在上一篇博文JNI之C++语言一中介绍了C++中一些与C有差异或者特有的部分,但是还没有涉及到面向对象的一些特性 。在接下来的两篇博文中主要介绍C++面向对象的一些特性,限于篇幅的关系,本文主要介绍类的定义与访问控制,对象的创建和this指针,构造函数初始化列表,静态成员的初始化,构造函数、析构函数和复制构造函数的定义、作用以及执行时机。有关继承、友元、多态、虚函数等特性下篇博文继续。 类 [...]

JNI之C++语言一

由于C++完全兼容C语言的实现,所以C++中类似C语言实现的内容在本文就不做介绍了,如基本数据类型、指针、数组、字符串、预处理指令、宏、结构体、联合体、动态内存分配malloc、文件读写以及sizeof和typedef等等,更多可以参看前面C语言内容: JNI之C语言上篇 JNI之C语言中篇 JNI之C语言下篇 有了C语言的基础,学习C++就很容易上手了,再者,如果学习过Java,那些 [...]

JNI之C语言下篇

本文继续介绍C语言剩下的知识点,通过对前面两篇文章JNI之C语言上篇和JNI之C语言中篇的介绍,我们已经了解了结构体、指针、数组、函数、预处理指令宏等,接下来介绍其它几种数据类型,如联合体和枚举,还有动态内存分配以及文件流操作。 联合体和枚举 联合体 联合体也叫共用体,在定义方式上面类似结构体的定义,只是联合体在定义时使用的关键字是union。如果仅仅是声明了一个联合体,而没有定义变量,这时 [...]

JNI之C语言中篇

在上一篇文章中简单介绍了C语言的基础知识点,如sizeof操作符、变量、常量、预处理指令、宏以及指针。本文继续上一篇文章的内容,着重介绍如下三个方面知识点:函数、数组以及结构体。 函数 有一点这里简单说明一下,有时候我们说函数,有时候我们又说方法,一般定义在类中的称为方法,反之都称为函数,所以在C语言中一般称之为函数。 在C或者C++中,函数定义类似变量,在类型前面还有类别修饰符。函数前 [...]

JNI之C语言上篇

JNI这部分的知识一直以来都想整理一下,最近抽时间梳理了一下,大体上会分为三个部分进行介绍。首先是C语言相关知识点,然后是C++相关知识点,最后会结合前面的C和C++相对系统的学习一下JNI语法,并结合一般示例进行JNI使用介绍。 JNI即Java Native Interface的缩写,它提供了Java和C或者C++语言进行通信的API。JNI主要是Java为C或者C++通信设计的,但是并不排 [...]

浅谈Android应用的启动流程

Android应用的启动就是指点击桌面应用icon一直到进入应用主界面的过程,这里跟Android系统的启动是有差异的,系统启动是指按下电源键到系统主界面的过程,Android系统启动后续单独另起一篇博文介绍。 本文分析的源代码依旧是Android5.1.1 API 22。 从Android4.4开始Launcher默认使用的是launcher3包下的Launcher类,在Android4. [...]

浅谈Window和WindowManager

Window和WindowManager在平常开发中也是使用较频繁的两个类,特别是Android4.4之后,如果需要设置沉寖状态栏或者透明工具栏,这里就涉及到Window的一些属性了。虽然Window我们并不能通过new来新建一个Window对象,但是在Activity中提供了获取Window的getWindow()方法,通过getWindow()方法拿到的Window对象我们就可以设置一些属性到 [...]
共 6 页 1 2 3 4 5 6