Android JNI学习笔记(五)-这两篇,足够了解jni

我学jni就是通过两篇文档来学的,我相信通过仔细阅读这两篇,绝对可以了解jni。Android jni tips JNIToc 官方文档我会乱说?剩下的就是c&c++的学习,以及其他方面了。...
阅读(337) 评论(0)

脚本打怪-shell学习

shell脚本1.什么是shell什么是shell呢?我们这里说的shell是指shell脚本,和window下的bat批命令处理类似,shell用于linux/unix系统,用来方便我们的操作,试想一下,原来需要一堆的命令,我们将其写成一个shell脚本,轻松搞定,是不是很带感。2.shell能干什么shell能干什么?shell能干的就是简化我们的操作,将我们从繁琐、单一的操作中解放出来。3.s...
阅读(1079) 评论(0)

Android JNI学习笔记(四)-数据类型映射以及native调用java

1. 前言前几篇学习了jni开发的基本流程、动态注册native函数以及相关编译文件的编写,咱们也算是知道了jni开发,但是还不够,今天咱们来学习下,java和jni的数据类型映射(说白了就是对应关系),以及如何在jni层调用java层的一些东西。偷偷告诉你们,这些全在jni.h文件里。2. 数据类型映射首先是我们的基本数据类型,其关系如下表描述这样。上面关系的相关代码在jni.h的44-51行,如...
阅读(2502) 评论(0)

Android JNI学习笔记(三)-编译文件Android.mk、Application.mk 与camke

1. 前言在android2.2中,加入了cmake编译,而以前都是用Android.mk、Application.mk的,今天就来记录下,他们的配置选项。2. Android.mkAndroid.mk在jni目录下,用于描述构建系统的源文件以及 shared libraries 。文件格式如下: 以LOCAL_PATH变量开始 LOCAL_PATH := $(call my-dir) 紧接着是C...
阅读(4044) 评论(3)

Android JNI学习笔记(二)-动态注册native函数

1.前言在很久之前的一篇Android 开发艺术探索的笔记当中,学习了简单的jni开发流程,但是那会的步骤极其繁琐复杂,而且生成的头文件函数太长,那么,有没有方法能解决呢,让开发过程变得简单易懂。当然是有的,那就是今天的主角。JNI_OnLoad函数。顺便说一下,现在as对 jni开发的支持是越来越好了。2. 首先声明native函数现在,我在activity里声明了一个native函数。publi...
阅读(1125) 评论(1)

深入理解java虚拟机笔记(三)-类加载机制

图片来自网络。 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 1. 类加载的时机类从被虚拟机加载到内存,到卸载出内存为止,他的整个生命周期为:加载、验证、准备、解析、初始化、使用、卸载七个过程,其中验证、准备、解析统称为连接。 2. 加载加载是类加载过程的第一个阶段,在这个阶段,虚拟机...
阅读(374) 评论(0)

深入理解java虚拟机笔记(二)-垃圾回收

ps:文中的图片都来自网络。部分图片来源1. 前言作为一种高级语言,比起c和c++来,很进步的一点就是垃圾回收机制。这省去来了我们很多的工作,不过,我们仍然需要了解垃圾回收,这对我们的成长很有帮助。2. 引用计数法引用计数法在很多高级语言都有,如python,java也不例外。对象内部维护有一个被其他对象引用的引用计数,当这个引用计数为0的时候,表示对象可以被回收。引用计数法存在一个问题,就是循环引...
阅读(1376) 评论(3)

深入理解java虚拟机笔记(一)-java内存区域与内存溢出

1. 前言这是深入理解java虚拟机一书的笔记,来自第二章。因为这本书讲的比较深奥,这是第二次看,需要记录一下笔记。2. 运行时数据区域java虚拟机所管理的内存分为以下几个区域。ps:图片来自网络2.1 程序计数器程序计数器是一块较小的内存空间,他可以看做是当前线程所执行字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选去下一条要执行的字节码指令,分之、循环、跳转、异常处理、线程...
阅读(1627) 评论(1)

说说Realm在Android上的坑

1.前言新项目使用了大名鼎鼎的realm,在网络上看到大量安利realm的文章,但是在使用的过程中却遇到了很多问题,这里记录下两个多月以来遇见的问题。希望大家能够理性选择,不要人云亦云。当然,,realm文档中也给出了一些当前的限制,但是,我们今天要说的,不仅仅是这些。realm-java文档地址2.线程的限制通常来讲,我们查询数据库会开一个子线程查询,这次,我们也没例外,简简单单的写两行代码,如下...
阅读(3576) 评论(4)

学习Android Architecture Blueprints(四)-databinding分支

1. 前言上一篇博客中,简单的学习了下databinding的用法,我自己也是爱上了他。咱们今天继续学习Android Architecture Blueprints。2. 架构图我们能够看到,在vp和model之间,多了viewmodel这一层,这一层就是用们的databinding来实现的。从图上来看,是mvpvm的形式。有兴趣的同学可以看下大帅的这片文章。链接地址3. 如何使用从架构图上的关系...
阅读(394) 评论(0)

Android DataBinding 学习笔记

学习自Google文档以及大帅的博客,文末地址链接。 1. DataBinding自从Google加入了DataBing,还是很受开发者喜爱的,所以,咱也来学习下DataBinding是什么鬼东西。在gradle文件的android节点下。添加如下配置,就开启了DataBinding。 dataBinding { enabled = true }下面有几点说明: 下文所...
阅读(1392) 评论(0)

学习Android Architecture Blueprints(三)-contentproviders分支

1. 前言因为我项目中没用过Dagger2,所以todo-mvp-dagger分支就暂且放一放,先来看contentproviders分支.2. 架构图从中我们可以看到,比todo-mvp-loaders分支,在loader和model之间,多处了ContentProvider。而我们要用的就是Loader框架中的CursorLoader。CursorLoader 文档废话不多说,直接上代码。3....
阅读(575) 评论(0)

学习Android Architecture Blueprints(二)-rxjava 和 loader 分支

1. 前言今天咱们继续,看下todo-mvp-rxjava分支与todo-mvp-loaders分支。rxjava分支引入了很火的rxjava。loaders分支引入了3.0就加入进来的Loader框架。2. rxjava分支不知道大家有没有用rxjava,rxjava用起来真的很不错,尤其是用rxandroid做线程调度的时候,配合上RxAndroid 全家桶,真的爽翻了。 RxJava Esse...
阅读(817) 评论(0)

学习Android Architecture Blueprints(一)-mvp分支

1. 前言在几个月前,google sample组织下,创建了一个叫做android-architecture的仓库,第一时间引爆了Android圈,这个项目在于指导使用不同的架构指导我们如何解决测试、维护以及扩展的难题,让我们一一学习下。项目地址2. todo-mvp分支在去年的时候,mvp火了起来,然而,在国内的文章当中,大多是的试讲m-v-p分开来写,我今年毕设使用这种模式,发现一个很严重的问...
阅读(1064) 评论(0)

走进设计模式(四)-行为型模式(下)

命令模式 备忘录模式 状态模式 访问者模式 中介者模式 解释器模式 0. 命令模式 将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化,对请求排队或者记录请求日志,以及支持可撤销的奥做。 Receiver 接受者角色 Command 命令类抽象接口 ConcreateCommand 具体命令角色 Invoker 请求者角色 Client 客户端public class Re...
阅读(321) 评论(0)

走进设计模式(三)-行为型模式(上)

行为型模式: 策略模式 模板方法模式 观察者模式 迭代器模式 责任链模式 1. 策略模式 定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换。策略模式让算法独立于使用它的客户而独立变化。Context 用来操作策略的上下文环境 Stragety 策略的抽象 ConcreteStragetyA、B 具体的策略实现 我们先定义一个接口Stragetypublic interface...
阅读(310) 评论(0)

两点技巧-给TextView添加Tag,点击空白收起键盘

1. 前言这篇给大家带来两个开发中用到的东西,地址如下: 全局点击空白收起键盘 TextView 带标签 希望大家star一下。2. 点击空白收起键盘大家有没有被测试提这种bug,我要点击空白收起键盘!!!其实很简单,代码如下。 private static void setTouchListener(final Activity context){ context.getWi...
阅读(1645) 评论(0)

走进设计模式(二)-结构型模式

1.前言结构型模式有以下几种。 适配器模式 装饰模式 代理模式 外观模式 桥接模式 组合模式 享元模式 下面一一学习。2. 适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 结构如下: Target 目标角色 Adaptee 需要适配的接口 Adapter 适配器 举个例子,我们手机充电器接口 就充当这这一角色。...
阅读(302) 评论(0)

走进设计模式(一)-创建型模式

设计模式很抽象,结合代码才比较清楚。 1. 前言设计模式无处不在,我们也需要简单了解下设计模式。设计模式中,创建型模式有以下几种。 工厂方法 抽象工厂 单例模式 建造者模式 原型模式 2. 工厂方法 用工厂方法,代替new操作AbsFactory 是一个抽象类 Factory 是工厂类,实现了抽象类的方法 QCar、Q2Car 是具体的对象 Factory代码如下我们传入Class,通过反射生成...
阅读(339) 评论(0)

了解EventBus 3.0 (二)-发送事件

虽然我在这里写下Eventbus,但是,还是觉得老司机教你 “飙” EventBus 3 才是很完美的文章。 1. 我们能发送哪些事件 post发送普通事件 postSticky 发送粘性事件 粘性事件,当有订阅者订阅的时候,会从粘性事件列表中取出最后(最新)的事件,发送出去。2. EventBus#post currentPostingThreadState是ThreadLocal Posting...
阅读(1032) 评论(0)
118条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:180664次
    • 积分:2968
    • 等级:
    • 排名:第11557名
    • 原创:115篇
    • 转载:0篇
    • 译文:0篇
    • 评论:85条