自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 dto层与model层的区别

Model层是面向业务的,我们是通过业务来定义Model的。而DTO是面向界面UI的,是通过UI的需求来定义的。 通过DTO我们实现了表现层与Model之间的解耦,表现层不引用Model。如果开发过程中我们的模型改变了,而界面没变,我们就只需要改Model而不需要去改表现层中的东西。 需要了解的是,数据传输对象DTO本身并不是业务对象。数据传输对象是根据UI的需求进行设计的,而不 是根据

2017-01-08 07:57:45 9389

原创 如何在程序里动态更改app中的icon

原理:1. activity-alias2. getApplicationContext().getPackageManager().setComponentEnabledSetting(getComponentName()|new ComponentName(getBaseContext(),"com.example.demo.TestActivity"),PackageManager.COMPO

2017-01-04 10:30:14 631

原创 Android基础知识

AsyncTask使用在哪些场景?它的缺陷是什么?如何解决? AsyncTask 运用的场景就是我们需要进行一些耗时的操作,耗时操作完成后更新主线程,或者在操作过程中对主线程的UI进行更新。 缺陷:AsyncTask中维护着一个长度为128的线程池,同时可以执行5个工作线程,还有一个缓冲队列,当线程池中已有128个线程,缓冲队列已满时,如果此时向线程提交任务,将会抛出RejectedEx

2016-12-12 08:33:10 331

原创 activity的生命周期

onCreate :表示Activity正在被创建。在这里可以做一些初始化的工作。onRestart :表示Activity正在重新启动。当当前Activity从不可见重新变成可见状态。onStart :表示Activity正在被启动。已经可见,但不在前台,无法交互。onResume :表示Activity已经可见,并且出现在前台可以交互。onPause :表示Activity正在停止。在这

2016-12-11 17:36:16 252

原创 Looper,Handler,Message Queue和线程之间的那些事

andriod提供了 Handler 和 Looper 来满足线程间的通信。 Handler 先进先出原则。 Looper 类用来管理特定线程内对象之间的消息交换 (MessageExchange) 。 1) Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的 MessageQueue( 消息队列 ) 。 2) Handler: 你可以构造 Handler

2016-12-11 17:32:01 326

原创 Android中四种进程的重要顺序

前台进程(foreground)目前正在屏幕上显示的进程和一些系统进程。举例来说,Dialer Storage,Google Search等系统进程就是前台进程;再举例来说,当你运行一个程序,如浏览器,当浏览器界面在前台显示时,浏览器属于前台进程(foreground),但一旦你按home回到主界面,浏览器就变成了后台程序(background)。 我们最不希望终止的进程就是前台进程可见进程(vi

2016-12-11 16:54:23 411

原创 URI、URL与URN的关系

URIURI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源URLURL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源URNURN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java

2016-12-05 11:38:45 412

原创 uiautomator自动化测试

module:appapply plugin: 'com.android.application' 2 3 android { 4 compileSdkVersion 23 5 buildToolsVersion "23.0.2" 6 7 defaultConfig { 8 //不要遗漏这句话 9 testInstrumen

2016-12-05 01:34:44 1509

原创 service详解

1. 什么是serviceService是一个可以在后台执行长时间操作而不使用用户界面的应用组件。那么问题来了,既然它不使用用户界面,那么它怎么知道应该什么时候开始执行什么操作呢?答案是——它可以与其他的引用组件形成一些联系,从而可以根据其传来的信息在合适的时候执行合适的操作。一般来讲,这种联系分为两种:startService()以及bindService()。这两种联系都可以使得一个serv

2016-12-04 15:54:07 508

原创 Android清单文件属性大全

android:allowTaskReparenting是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。android:alwaysRetainTaskState是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态android:clearTaskOnLanunch比如 P 是 activity, Q 是被P 触发的 activity

2016-12-04 14:17:39 356

原创 gradle文件详细介绍

项目空间build.gradle文件:// Top-level build file where you can add configuration options common to all sub-projects/modules. /** * 项目空间的编译环境 */ buildscript { /** * 当前仓库源 */ re

2016-12-04 13:13:51 633

原创 android中自动生成parcelable

在Android studio中安装android parcelable code generator 插件 书写自己的目标类public class DemoParcelable { String aString; int aInt; double aDouble; HashMap<String, String> aHashMap; ArrayList<

2016-12-04 10:56:31 1354

原创 android之aidl研究(2)

如何使用aidl文件来完成跨进程通信在进行跨进程通信的时候,在AIDL中定义的方法里包含非默认支持的数据类型与否,我们要进行的操作是不一样的。如果不包含,那么我们只需要编写一个AIDL文件,如果包含,那么我们通常需要写 n+1 个AIDL文件( n 为非默认支持的数据类型的种类数)——显然,包含的情况要复杂一些。所以我接下来将只介绍AIDL文件中包含非默认支持的数据类型的情况,至于另一种简单些的情况

2016-12-04 10:40:30 283

原创 android之aidl研究(1)

概述AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言。是的,首先我们知道的第一点就是:AIDL是一种语言为什么要设计这门语言设计这门语言的目的是为了实现进程间通信,尤其是在涉及多进程并发情况下的进程间通信。每一个进程都有自己的Dalvik VM实例,都有自己的一块独立的内存,都在自己的内存上存储自己的数据,执行着自

2016-12-04 09:17:28 266

原创 gradle基本概念

红色标记部分从上到下来一步步分析9GAG/app/build.gradle// 声明是Android程序apply plugin: 'com.android.application'android { // 编译SDK的版本 compileSdkVersion 21 // build tools的版本 buildToolsVersion "21.1.1"

2016-12-04 08:21:55 266

原创 ascii码

ASCII码从0到255对应的Symbol,HTML Name, Description http://www.ascii-code.com/

2016-12-04 00:03:07 201 1

原创 web前端之Doctype declarations

html5 template<!DOCTYPE html><html><head> <title>An HTML standard template</title> <meta charset="utf-8" /></head><body> <p>… Your HTML content here …</p></body></html>

2016-12-03 23:48:28 241

原创 前端代码整洁原则

DOCTYPE的声明字符集和编码字符正确的代码缩进外链你的CSS样式和Javascript脚本在制作web页面中,尽量将你的CSS样式和javascript脚本单独放在一个文件中,然后通过链接的方式引用这些文件,这样做的最大好处是,方便你的样式和脚本的管理与修改。正确的标签嵌套删除不必要的标签使用更好的命名那么定义一个好的名就很得要了,不但自己能看懂你的代码,而且别人也能轻松读懂你的代码,

2016-12-03 23:42:46 496

原创 程序员们的时间法则

设定目标:长期和短期想要生活变的更好,首先应该知道该怎么做才会更好?下个星期、下个季度、未来两年甚至未来20年,你会在哪里(如果你很年轻,必须决定你想要什么?确定你的追求所在!)。善待计划,勇于执行计划只有合理的去计划,才能达到令人满意的结果!有时我坐下来思考,仅仅只是坐着思考如果你发现自己处于混乱的状态,那么可以换个事情做做,转移一下焦点,比如站在窗前看看外面或者放松放松双眼。如果不能计划,只能跟

2016-12-03 23:11:52 253

原创 git之.gitignore

.ignore常用规则/mtk/过滤整个文件夹*.zip过滤所有.zip文件/mtk/do.c过滤某个具体文件添加文件到版本管理中:规则开头多一个感叹号

2016-12-03 22:04:01 187

原创 android studio之三视图

project视图android的module推荐这么写.gitignore文件/build*.imlAndroid的项目推荐这么写.gitignore文件# Built application files *.apk *.ap_ # Files for the Dalvik VM *.dex # Java class files *.class # Generated f

2016-12-03 21:53:42 299

原创 android之translate

<translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="240" android:fromYDelta="100%p" android:interpolator="@android:anim/decelerate_interpolator" andr

2016-12-03 20:22:42 675

原创 Android 动画之interpolator

Android:interpolator被用来修饰动画效果,定义动画的变化率,可以是存在的动画效果accelerated(加速),decelerate(减速),repeated(重复),bounced(弹跳)等。 AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速 AccelerateInterpolator 在动画开始的

2016-12-03 20:03:20 167

原创 Android中activity与Fragment通信

activity使用fragment中的方法new MyFragment().toastShow();fragment使用activity中的方法 ((MainActivity)getActivity()).getTestString();activity响应 Fragment中的点击事件 public interface OnButton2ClickListener{ publi

2016-12-02 15:14:55 205

原创 编程思想

能复制就复制,节约时间避免出错保留原本结构,简单上手容易调试说明随手可得,不用上网或打开文档增加必要注释,说明功能和使用方法命名尽量规范,容易查找一看就懂函数尽量嵌套,减少代码容易修改最先参数判错,保证外部任意调用代码模块分区,方便浏览容易查找封装常用代码,方便使用降低耦合回收多余占用,优化内存提高性能分包结构合理,模块清晰浏览方便

2016-12-02 13:50:31 209

原创 用到的开源库

SystemBarTint系统栏管理器,我把它用在ZBLibrary的BaseActivity中实现了状态栏沉浸。Android-Universal-Image-Loader非常强大的图片加载库,我在ZBLibrary中写了一个ImageLoaderUtil来简化使用它。 UIL唯一的缺点是不支持动态加载,需要动态加载建议用Google的Glide。 XListView-Android下拉刷新、

2016-12-02 13:45:14 257

原创 activity的启动模式

activity的启动模式activity的启动模式有四种standard 被启动就会创建一个新的singleTop 栈顶单实例(当该activity处于task栈顶时,可以复用,直接onNewIntent)singleTask 栈中单实例(oncreate该activity并销毁在他之上的其他activity)singleInstance 全

2016-12-02 11:57:16 172

原创 定制库到maven本地资源库

定制库mvn install:install-file -Dfile=c:\kaptcha-{version}.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar

2016-12-01 09:17:43 264

原创 常用dos命令

常用dos命令打开dos界面的方法运行-->输入cmd运行-->输入command程序-->附件-->命令提示符新建文本文件-->输入cmd,保存后缀为.cmd或.bat打开c:windowsSystem32目录,找到文件cmd.exedos命令winver(Windows version):查看Windows系统版本cmd(Command):打开cmd程序write(wordpad)

2016-12-01 09:13:37 259

原创 爬虫_for_python

爬虫_for_pythonrequests安装pip install requestsrequests使用requests.get()requests.post()requests.head()requests.delete() 例子import requestsurl='http://www.baidu.com'html=requests.get(url)print html.te

2016-12-01 08:52:43 226

原创 Android studio 插件

Android studio 插件gsonformat 使用方法:alt+sandroid code generator 根据xml自动生成代码Android parcelable code generator javabean序列化,快速实现parcelable接口Android methods count 显示依赖方法库中的方法数lifecycle sorter 根据生命周期

2016-12-01 08:40:14 224

原创 拆手机

拆手机第一层有14个螺丝,其中有2个长的,12个短的其中写着精密器件严禁撕毁也是硬件的一部分,共有三处左上角是WiFi器件,底部是天线器件有天线,喇叭,显示屏幕,摄像头,主板

2016-12-01 08:37:16 277

原创 使用opencv中的adboost算法训练分类器

如何使用opencv中的adboost算法训练分类器需要的工具opencv视觉库vs开发环境步骤1. 正负样本的选取2. 样本描述文件的创建 使用dos命令和opencv中的createSamples程序创建样本描述文件正样本描述文件的创建1. 使用命令将当前目录切换到正样本图片的目录2. 输入dir /b > pos.txt,此时目录中生成一个pos.txt文件,打开pos.txt

2016-12-01 08:31:50 548

原创 Android开发规范总结

包命名规范com.xxx.xxx.activities –> activity类com.xxx.xxx.view –> 自定义view 或者是View接口com.xxx.xxx.adapter –> 适配器相关com.xxx.xxx.bean –> 实体类com.xxx.xxx.broadcast –> 广播接收器com.xxx.xxx.db

2016-10-06 11:51:08 225

原创 Android apk 反编译技术

能够快速学习别人开发apk的思路

2016-05-09 03:17:34 168

原创 如何创建一个博客

我的第一个博客,纪念一下

2016-05-09 01:55:54 280

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除