2017年2月24日

MVP模式入门案例

摘要: 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责。为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Model只关系数据的处理,基于MVC概念的MVP(Model-View-Presenter)模式应运而生。 四个要素: ( 阅读全文

posted @ 2017-02-24 22:18 LoaderMan 阅读(264) 评论(0) 推荐(0)

MVC模式入门案例

摘要: import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity implements ... 阅读全文

posted @ 2017-02-24 22:12 LoaderMan 阅读(158) 评论(0) 推荐(0)

MVC和MVP区别

摘要: 从这幅图可以看到,我们可以看到在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,及View。 所以,在MVC模型里,Model不依赖于View,但是Vi 阅读全文

posted @ 2017-02-24 22:10 LoaderMan 阅读(203) 评论(0) 推荐(0)

TortoiseGit的安装

摘要: 运行TortoiseGit-1.7.7.0-32bit.msi, 如下图 点击Next, 下一步 点击Next, 下一步 选择ssh客户端, 使用默认, 点击Next, 下一步 选择安装路径, 点击Next, 下一步 点击Install, 开始安装 Win 7下弹出一个确认安装的提示框, 确认就可以 阅读全文

posted @ 2017-02-24 21:06 LoaderMan 阅读(159) 评论(0) 推荐(0)

Git简介

摘要: Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。 优势: 1分布式,强调 阅读全文

posted @ 2017-02-24 20:58 LoaderMan 阅读(177) 评论(0) 推荐(0)

SVN简单的使用

摘要: 1.在本地新建一个空的文件夹,名字不要使用中文 2.进入此文件中鼠标右击svn checkout 3.在弹出的检出对话框中输入版本库URL:如:http://58.213.167.143:8080/svn/ISPACE/trunk 鼠标右击: checkout : 检出服务端的代码到本地 commi 阅读全文

posted @ 2017-02-24 20:50 LoaderMan 阅读(255) 评论(0) 推荐(0)

SVN图标详解

摘要: 蓝色的加号 : 把这个文件已经添加到版本控制软件内 绿色的对勾 : 客户端和服务器端的代码一致 红色的叹号 : 客户端和服务器端两边的代码不一致 黄色的叹号 : 文件冲突 蓝色的问号 : 这个文件不在版本控制软件的计划范围内 蓝色的加号 : 把这个文件已经添加到版本控制软件内 绿色的对勾 : 客户端 阅读全文

posted @ 2017-02-24 20:48 LoaderMan 阅读(452) 评论(0) 推荐(0)

svn客户端软件的安装

摘要: 运行TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi程序, 开始安装 点击Next, 下一步 选择 I accept 接受, 点击Next, 下一步 选择安装路径, 点击Next下一步 点击 Install 开始安装 Win 7下会弹出一个对话框, 确认是否安装 阅读全文

posted @ 2017-02-24 20:45 LoaderMan 阅读(195) 评论(0) 推荐(0)

TortoiseSvn客户端介绍

摘要: TortoiseSVN 是svn版本控制系统的一个免费开源客户端,它是svn版本控制的 Windows 扩展。可以使你避免使用枯燥而且不方便的命令行。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里点击右键操作就可以了。 下载: http://tortoisesvn.net/d 阅读全文

posted @ 2017-02-24 20:37 LoaderMan 阅读(279) 评论(0) 推荐(0)

SVN服务器的安装

摘要: 运行VisualSVN-Server-2.7.3.msi程序, 如下图 点击Next, 下一步 选中 I accept选项, 点击Next, 下一步 选择默认配置, 服务和控制台组件方式, 点击Next, 下一步 点击Standard Edition, 安装标准版 上图中, 红色圈中的部分Locat 阅读全文

posted @ 2017-02-24 20:35 LoaderMan 阅读(177) 评论(0) 推荐(0)

SV服务器

摘要: 什么是服务端? 就是安装了服务端软件的电脑 下载 VisualSVN是一款图形化svn服务器。 官 网: http://www.visualsvn.com/server/ 下载地址: http://www.visualsvn.com/server/download/ 阅读全文

posted @ 2017-02-24 20:30 LoaderMan 阅读(315) 评论(0) 推荐(0)

SVN简介

摘要: Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件CVS,在CVS的功能的基础上有很多的提升同时也能较好的解决CVS系统的一些不足。 01为什么要 阅读全文

posted @ 2017-02-24 20:26 LoaderMan 阅读(238) 评论(0) 推荐(0)

Sticky广播

摘要: sticky广播通过Context.sendStickyBroadcast()函数来发送,用此函数发送的广播会一直滞留,当有匹配此广播的广播接收器被注册后,该广播接收器就会收到此条信息。 使用此函数需要发送广播时,需要获得BROADCAST_STICKY权限 sendStickyBroadcast只 阅读全文

posted @ 2017-02-24 20:18 LoaderMan 阅读(816) 评论(0) 推荐(0)

本地广播

摘要: 在API21的Support v4包中新增本地广播,也就是LocalBroadcastManager。由于之前的广播都是全局的,所有应用程序都可以接收到,这样就会带来安全隐患,所以我们使用LocalBroadcastManager只发送给自己应用内的信息广播,限制在进程内使用。 它的用法很简单,只需 阅读全文

posted @ 2017-02-24 20:17 LoaderMan 阅读(189) 评论(0) 推荐(0)

注册广播和反注册广播

摘要: BroadcastReceiver是四大组件之一,所以毫不疑问需要注册,BroadcastReceiver的注册有两种方法: 通过manifests配置 通过代码动态配置 通过manifests配置 通过代码动态配置 方法一:通过manifests配置 这里需要加入intent-filter的act 阅读全文

posted @ 2017-02-24 20:13 LoaderMan 阅读(813) 评论(0) 推荐(0)

JNI知识扩展

摘要: JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互。 问:为什么要进行交互? |- 首先,Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低。 阅读全文

posted @ 2017-02-24 19:56 LoaderMan 阅读(287) 评论(0) 推荐(0)

java和C++之间的调用

摘要: java和C++之间的调用其实和C差不多,只是有几点不一样 区别: 包名.类名.h 这个头文件必须有且必须在JNI目录里 后缀不需要修改 阅读全文

posted @ 2017-02-24 19:55 LoaderMan 阅读(248) 评论(0) 推荐(0)

C代码调用Java代码

摘要: C代码调用Java代码应用场景 复用已经存在的java代码 c语言需要给java一些通知 c代码不方便实现的逻辑(界面) 反射 //1.加载类字节码 Class clazz = Demo.class.getClassLoader().loadClass("com.example.Dialog"); 阅读全文

posted @ 2017-02-24 19:52 LoaderMan 阅读(284) 评论(0) 推荐(0)

简易的美图秀秀利用别人的so库

摘要: 在实际开发中,有时候时间短,任务量大,可以查看类似的apk,将行apk反编译,通过看源码分析,用里面的JNI代码! 本案例中用了美图秀秀的JNI.java和jni.so链接库 项目中调用别人写的c代码: 1.得到so和开发文档; 2.把so文件放到libs/armeabi/目录下; 3.根据开发文档 阅读全文

posted @ 2017-02-24 19:48 LoaderMan 阅读(407) 评论(0) 推荐(0)

C代码输出日志

摘要: 模板代码,在实际开发中可以使用: 阅读全文

posted @ 2017-02-24 19:45 LoaderMan 阅读(761) 评论(0) 推荐(0)

JAVA向C传递数据

摘要: 传递数组 数组是个对象,传递对象就是传递地址,修改地址上的值,数组的内容就会改变 //获取数组首地址 int* p = (*env)->GetIntArrayElements(env, array, 0); //获取数组长度 int length = (*env)->GetArrayLength(e 阅读全文

posted @ 2017-02-24 19:44 LoaderMan 阅读(411) 评论(0) 推荐(0)

JNI使用常见错误

摘要: 1. java.lang.UnsatisfiedLinkError: Couldn't load hello: **findLibrary returned null** 解决方案: * 如果处理器平台不匹配,返回的lib就是空 在Application.mk文件中编写APP_ABI := all 阅读全文

posted @ 2017-02-24 19:42 LoaderMan 阅读(251) 评论(0) 推荐(0)

JNI的开发步骤

摘要: 使用C函数实现Java本地方法: 1. 在java代码里面声明一个native的方法 public native String helloFromC(); 2. 在工程目录下面创建一个jni的文件夹 3. 在jni文件夹里面编写c代码,实现java的本地方法 //JNIEnv* envJNI本地接口 阅读全文

posted @ 2017-02-24 19:40 LoaderMan 阅读(229) 评论(0) 推荐(0)

NDk的目录

摘要: * docs : 开发文档* build: linux下编译的批处理命令* platform : 某种平台下编译需要的头文件和函数库* prebuild : 预编译的工具* sample: 实例代码* sources : 一些工具链的源码* toolschains: 工具链* ndk-build.c 阅读全文

posted @ 2017-02-24 19:39 LoaderMan 阅读(149) 评论(0) 推荐(0)

交叉编译

摘要: 01 交叉编译 在一个平台上编译出来另外一个平台可以运行的二进制代码 不同的操作系统:windows, mac os,linux,unix 不同的处理器平台:x86,arm,MIPS 02 交叉编译的原理 源代码 >编译 >链接 >可执行性程序 原理:模拟另外一种平台的特性去进行编译 03 交叉编译 阅读全文

posted @ 2017-02-24 19:38 LoaderMan 阅读(132) 评论(0) 推荐(0)

NDK的环境配置

摘要: http://www.androiddevtools.cn/ 下载NDK, 最新版本. 解压压缩包,如解压后文件夹名为如android-ndk-r13,放在指定的位置 配置环境变量: 系统环境path : D:\develop\Android\eclipse\android-ndk-r9; 阅读全文

posted @ 2017-02-24 19:37 LoaderMan 阅读(149) 评论(0) 推荐(0)

JNI概述

摘要: * Java Native Interface (Java本地接口) * 完成两种语言之间的沟通和交流 * 让Java可以和C之间相互调用 * JNI 是一个协议,这个协议用来沟通java代码和外部的本地代码(c/c++).通过这个协议,java代码就可以调用外部的c/c++代码外部的c/c++代码 阅读全文

posted @ 2017-02-24 19:28 LoaderMan 阅读(251) 评论(0) 推荐(0)

事件传递机制

摘要: 关于Android中的事件传递,在Android系统源代码层级的实现上非常的复杂,而对于应用程序的开发而言,不必要深究太多的细节,我们只需要掌握事件传递机制所带来的一些结论即可。 结论 结论1:事件的一定是先到达父控件上 结论2:事件简单来说可以分为三种:Down事件、Move事件、Up事件,结合结 阅读全文

posted @ 2017-02-24 17:18 LoaderMan 阅读(484) 评论(0) 推荐(0)

ViewGroup的事件机制

摘要: 根据View的事件机制,再添加在代码中添加一个自定义的LinearLayout,继承LinearLayout,然后复写了与事件分发机制有关的方法,日志输出 MyLinearLayout中包含一个MyButton,MyButton是自定义Button,然后MainActivity就是直接加载布局,直接 阅读全文

posted @ 2017-02-24 17:06 LoaderMan 阅读(208) 评论(0) 推荐(0)

View的事件机制

摘要: 为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志. 日志打印: 因为手没抖动,所以没有触发MOVE,手抖可能会打印一堆MOVE的日志 可以看到:DOWN,MOVE,UP都会按照下面的顺序执行: 1、dispatchT 阅读全文

posted @ 2017-02-24 16:45 LoaderMan 阅读(242) 评论(0) 推荐(0)

UI的流畅度优化

摘要: Android中所有的界面绘制工作都是在UI线程中进行的,提高UI流畅度的最核心根本在于释放UI线程。即:不在主线程中做耗时的操作。 很多人都知道,耗时的操作要放到子线程中去做,比如访问网络,比如读写sd卡。像这类操作大家都会很自然的想到使用子线程来完成耗时的操作,等操作结束之后,再通过Handle 阅读全文

posted @ 2017-02-24 14:36 LoaderMan 阅读(405) 评论(0) 推荐(0)

内存泄漏和内存溢出的优化

摘要: 内存泄漏: 对象在内存heap堆中中分配的空间, 当不再使用或没有引用指向的情况下, 仍不能被GC正常回收的情况。 多数出现在不合理的编码情况下, 比如在Activity中注册了一个广播接收器, 但是在页面关闭的时候进行unRegister, 就会出现内存溢出的现象。 通常情况下, 大量的内存泄漏会 阅读全文

posted @ 2017-02-24 14:13 LoaderMan 阅读(2756) 评论(0) 推荐(0)

instanceof

摘要: Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 用法:result = object instanceof class参数:Result:布尔类型。Object: 阅读全文

posted @ 2017-02-24 12:48 LoaderMan 阅读(184) 评论(0) 推荐(0)

ValueAnimator

摘要: import android.animation.ValueAnimator; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; public class MainActivity extends AppCompatActivity ... 阅读全文

posted @ 2017-02-24 10:32 LoaderMan 阅读(130) 评论(0) 推荐(0)

ObjectAnimator属性动画示例代码

摘要: import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListene... 阅读全文

posted @ 2017-02-24 10:02 LoaderMan 阅读(311) 评论(0) 推荐(0)

属性动画

摘要: Android 3.0以后引入了属性动画,属性动画可以轻而易举的实现许多View动画做不到的事, 属性动画实现原理就是修改控件的属性值实现的动画。 具体先看下类关系: Android属性动画(注意最低兼容版本,不过可以使用开源项目来替代低版本问题)提供了以下属性: Duration:动画的持续时间; 阅读全文

posted @ 2017-02-24 09:51 LoaderMan 阅读(1092) 评论(0) 推荐(0)

Tween(补间)动画

摘要: 视图动画,也叫Tween(补间)动画可以在一个视图容器内执行一系列简单变换(位置、大小、旋转、透明度)。譬如,如果你有一个TextView对象,您可以移动、旋转、缩放、透明度设置其文本,当然,如果它有一个背景图像,背景图像会随着文本变化。 补间动画通过XML或Android代码定义,建议使用XML文 阅读全文

posted @ 2017-02-24 09:08 LoaderMan 阅读(663) 评论(0) 推荐(0)

导航