- 博客(36)
- 收藏
- 关注
原创 dto层与model层的区别
Model层是面向业务的,我们是通过业务来定义Model的。而DTO是面向界面UI的,是通过UI的需求来定义的。 通过DTO我们实现了表现层与Model之间的解耦,表现层不引用Model。如果开发过程中我们的模型改变了,而界面没变,我们就只需要改Model而不需要去改表现层中的东西。 需要了解的是,数据传输对象DTO本身并不是业务对象。数据传输对象是根据UI的需求进行设计的,而不 是根据
2017-01-08 07:57:45
9427
原创 如何在程序里动态更改app中的icon
原理:1. activity-alias2. getApplicationContext().getPackageManager().setComponentEnabledSetting(getComponentName()|new ComponentName(getBaseContext(),"com.example.demo.TestActivity"),PackageManager.COMPO
2017-01-04 10:30:14
657
原创 Android基础知识
AsyncTask使用在哪些场景?它的缺陷是什么?如何解决? AsyncTask 运用的场景就是我们需要进行一些耗时的操作,耗时操作完成后更新主线程,或者在操作过程中对主线程的UI进行更新。 缺陷:AsyncTask中维护着一个长度为128的线程池,同时可以执行5个工作线程,还有一个缓冲队列,当线程池中已有128个线程,缓冲队列已满时,如果此时向线程提交任务,将会抛出RejectedEx
2016-12-12 08:33:10
356
原创 activity的生命周期
onCreate :表示Activity正在被创建。在这里可以做一些初始化的工作。onRestart :表示Activity正在重新启动。当当前Activity从不可见重新变成可见状态。onStart :表示Activity正在被启动。已经可见,但不在前台,无法交互。onResume :表示Activity已经可见,并且出现在前台可以交互。onPause :表示Activity正在停止。在这
2016-12-11 17:36:16
276
原创 Looper,Handler,Message Queue和线程之间的那些事
andriod提供了 Handler 和 Looper 来满足线程间的通信。 Handler 先进先出原则。 Looper 类用来管理特定线程内对象之间的消息交换 (MessageExchange) 。 1) Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的 MessageQueue( 消息队列 ) 。 2) Handler: 你可以构造 Handler
2016-12-11 17:32:01
348
原创 Android中四种进程的重要顺序
前台进程(foreground)目前正在屏幕上显示的进程和一些系统进程。举例来说,Dialer Storage,Google Search等系统进程就是前台进程;再举例来说,当你运行一个程序,如浏览器,当浏览器界面在前台显示时,浏览器属于前台进程(foreground),但一旦你按home回到主界面,浏览器就变成了后台程序(background)。 我们最不希望终止的进程就是前台进程可见进程(vi
2016-12-11 16:54:23
432
原创 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
418
原创 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
1516
原创 service详解
1. 什么是serviceService是一个可以在后台执行长时间操作而不使用用户界面的应用组件。那么问题来了,既然它不使用用户界面,那么它怎么知道应该什么时候开始执行什么操作呢?答案是——它可以与其他的引用组件形成一些联系,从而可以根据其传来的信息在合适的时候执行合适的操作。一般来讲,这种联系分为两种:startService()以及bindService()。这两种联系都可以使得一个serv
2016-12-04 15:54:07
536
原创 Android清单文件属性大全
android:allowTaskReparenting是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。android:alwaysRetainTaskState是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态android:clearTaskOnLanunch比如 P 是 activity, Q 是被P 触发的 activity
2016-12-04 14:17:39
362
原创 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
662
原创 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
1388
原创 android之aidl研究(2)
如何使用aidl文件来完成跨进程通信在进行跨进程通信的时候,在AIDL中定义的方法里包含非默认支持的数据类型与否,我们要进行的操作是不一样的。如果不包含,那么我们只需要编写一个AIDL文件,如果包含,那么我们通常需要写 n+1 个AIDL文件( n 为非默认支持的数据类型的种类数)——显然,包含的情况要复杂一些。所以我接下来将只介绍AIDL文件中包含非默认支持的数据类型的情况,至于另一种简单些的情况
2016-12-04 10:40:30
288
原创 android之aidl研究(1)
概述AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言。是的,首先我们知道的第一点就是:AIDL是一种语言为什么要设计这门语言设计这门语言的目的是为了实现进程间通信,尤其是在涉及多进程并发情况下的进程间通信。每一个进程都有自己的Dalvik VM实例,都有自己的一块独立的内存,都在自己的内存上存储自己的数据,执行着自
2016-12-04 09:17:28
289
原创 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
277
原创 ascii码
ASCII码从0到255对应的Symbol,HTML Name, Description http://www.ascii-code.com/
2016-12-04 00:03:07
226
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
245
原创 前端代码整洁原则
DOCTYPE的声明字符集和编码字符正确的代码缩进外链你的CSS样式和Javascript脚本在制作web页面中,尽量将你的CSS样式和javascript脚本单独放在一个文件中,然后通过链接的方式引用这些文件,这样做的最大好处是,方便你的样式和脚本的管理与修改。正确的标签嵌套删除不必要的标签使用更好的命名那么定义一个好的名就很得要了,不但自己能看懂你的代码,而且别人也能轻松读懂你的代码,
2016-12-03 23:42:46
518
原创 程序员们的时间法则
设定目标:长期和短期想要生活变的更好,首先应该知道该怎么做才会更好?下个星期、下个季度、未来两年甚至未来20年,你会在哪里(如果你很年轻,必须决定你想要什么?确定你的追求所在!)。善待计划,勇于执行计划只有合理的去计划,才能达到令人满意的结果!有时我坐下来思考,仅仅只是坐着思考如果你发现自己处于混乱的状态,那么可以换个事情做做,转移一下焦点,比如站在窗前看看外面或者放松放松双眼。如果不能计划,只能跟
2016-12-03 23:11:52
259
原创 git之.gitignore
.ignore常用规则/mtk/过滤整个文件夹*.zip过滤所有.zip文件/mtk/do.c过滤某个具体文件添加文件到版本管理中:规则开头多一个感叹号
2016-12-03 22:04:01
191
原创 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
306
原创 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
687
原创 Android 动画之interpolator
Android:interpolator被用来修饰动画效果,定义动画的变化率,可以是存在的动画效果accelerated(加速),decelerate(减速),repeated(重复),bounced(弹跳)等。 AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速 AccelerateInterpolator 在动画开始的
2016-12-03 20:03:20
172
原创 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
212
原创 编程思想
能复制就复制,节约时间避免出错保留原本结构,简单上手容易调试说明随手可得,不用上网或打开文档增加必要注释,说明功能和使用方法命名尽量规范,容易查找一看就懂函数尽量嵌套,减少代码容易修改最先参数判错,保证外部任意调用代码模块分区,方便浏览容易查找封装常用代码,方便使用降低耦合回收多余占用,优化内存提高性能分包结构合理,模块清晰浏览方便
2016-12-02 13:50:31
217
原创 用到的开源库
SystemBarTint系统栏管理器,我把它用在ZBLibrary的BaseActivity中实现了状态栏沉浸。Android-Universal-Image-Loader非常强大的图片加载库,我在ZBLibrary中写了一个ImageLoaderUtil来简化使用它。 UIL唯一的缺点是不支持动态加载,需要动态加载建议用Google的Glide。 XListView-Android下拉刷新、
2016-12-02 13:45:14
265
原创 activity的启动模式
activity的启动模式activity的启动模式有四种standard 被启动就会创建一个新的singleTop 栈顶单实例(当该activity处于task栈顶时,可以复用,直接onNewIntent)singleTask 栈中单实例(oncreate该activity并销毁在他之上的其他activity)singleInstance 全
2016-12-02 11:57:16
179
原创 定制库到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
268
原创 常用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
275
原创 爬虫_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
235
原创 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
231
原创 拆手机
拆手机第一层有14个螺丝,其中有2个长的,12个短的其中写着精密器件严禁撕毁也是硬件的一部分,共有三处左上角是WiFi器件,底部是天线器件有天线,喇叭,显示屏幕,摄像头,主板
2016-12-01 08:37:16
285
原创 使用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
560
原创 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
229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人