自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(147)
  • 资源 (35)
  • 收藏
  • 关注

原创 策略者模式和工厂模式的应用

##1策略者模式在开发中经常遇到的一种情况就是,我们在不同的业务情况,实现不同的业务,比如学生成绩>=90 优秀成绩>=80 <90 良好成绩>=70 <80 中等成绩<60 不及格在这种情况下,我们需要用if else来判断出每种情况,给不同的评分。 if(grade>=90){ toG

2019-01-05 17:11:20 839

原创 Android中常见的安全问题

Android中的安全问题,贯穿APK开发的始终,从编码,到与服务器交互,最线打包上线运行在终端上,都存在安全隐患。如果这些隐患排查或者规避,可能给APK或者服务器造成灾难性的后果。1、SQL注入攻击2、组件暴漏3、Log敏感信息泄露4、权限问题5、慎重使用开源库6、代码混淆,加密,加固7、webview8、zip目录攻击9、网络安全问题...

2018-07-03 22:34:11 1327

原创 Android中设计模式-Builder模式

引入:当我们创建对象传递参数的时候,往往通过构造方法来传,如下代码:上面代码这样写没有问题,但是如果参数不断的增加,而且增加可行,必选字段,这样使我们的代码很难编写,而且不容易实现,大量的增加工作量1、遇到多个构造器参数时考虑使用构造器 这时候,我们就可以考虑使用构建器模式。 2、定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。3、使用场...

2018-06-06 18:03:32 4675

原创 多线程

1、多线程比单线程快吗 大一般情况下,多线程是比单线程快的。但不是一定 在单核cpu的情况下,如果做的工作是cpu密集型的,开多个线程,反而有可能比线程要慢,线程间的切换是需要消耗资源和时间的。 但是,大部分情况下,我们做的工作是IO密集型的,消耗的大部资源在IO上,因此CPU还是处于空闲状态,这时候,利用多线程,可以充分的利用资源 举个例子: 用挖掘机来挖...

2018-06-04 15:53:09 263

原创 Android设计模式-装饰模式

1、定义动态给的一个对象添加额外的职责或者功能。比生成子类更为灵活。2、适用场景动态的扩展类的功能3、UML图4、简单的实现1、定义Person抽象类,需要穿衣服的抽象方法public abstract class Person { public abstract void dressed();}2、Person实现public cl...

2018-05-28 22:05:45 227

原创 Android设计模式-代理

##1、代理模式##2、使用场景##3、示例

2018-05-27 00:05:34 327

原创 Android中的动画和原理(属性动画)

1、属性动画属性动画通过改变对象的属性来展示的动画效果,补间动画只是设置当前View在区域内移动,产生的动画效果,其实原View的还在原地,没有发生改变。 但属性动画改变了对象的属性。也就是改变了对象的颜色,位置,宽高等。2、示例public class MainActivity extends AppCompatActivity { private ImageVie...

2018-05-07 13:50:51 1641

原创 Android中的动画和原理(帧动画和补间动画)

1、Android中的动画分类Android中的动画可以分为三类:帧动画,补间动画,和属性动画 动画分类 说明 帧动画 通过不停的播放图片产生的动画效果 补间动画 对View的平移,旋转,缩放,透明产生效果 属性动画 动态的改变属性产生动画效果2、帧动画及其原理原理帧动画是按照一定的顺序播放一系列图片,从而产生动画...

2018-05-03 22:29:31 1450 1

原创 Android自动化测试一(Uiautomator)

1、Android自动化测试1、自动化测试的目的:1、减少人为的机械性的操作测试 2、大量测试(比如点击10000次) 3、长保时间测试(通话5小时) 4、节省时间,成本,覆盖面比较广2、Android中常用的自动化测试1、Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开...

2018-04-16 22:06:59 1995

原创 Bitmap的高效加载

1、Android内存分配Android给每个APK分配相应的内存空间,一般情况下只要APK超过个空间的限制,就会报OOM Runtime rt = Runtime.getRuntime(); long maxMemory = rt.maxMemory(); Log.i("maxMemory:", Long.toString(maxMemory / (1024 *...

2018-04-11 22:49:00 222

原创 ArcGis Failed to open file. May not be a valid tile package

                              ArcGis Failedto open file. May not be a valid tile package  在使用ArcGIS的时候遇到一些错误:官方网站:https://developers.arcgis.com/android/10-2/1、Failed to open file. May not be a valid t...

2018-03-23 10:47:36 617

原创 Java RSA

在数据传递过程中,一些非常重要的信息必须经过加密处理,防止其他人获取或者篡改信息。这就有了数字签名,数字签名处理的问题主要是两点 1、发送信息的人是真实确定的。 2、发送的信息是加密的且没有经过篡改的。 数字签名:保证数据发送人的正解性和发送内容没有经过篡改 数字摘要:发送的信息不是明文,别人获取到也难以解读信息。1、数字签名数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字

2017-11-05 00:00:12 444

原创 Android IPC、Binder和AIDL

1、前言 IPCPC(Inter-Process Communication)进程间通信,提供了各种进程间通信的方法。不仅是Android,其他语言也大很多情况下需要进程间通信的。Android本质上属于Linux,它的跨进程通信也基于Linux进程通信的原理。在Linux C编程中有几种方法 (1) 半双工Unix管道 (2) FIFOs(命名管道) (3) 消息队列 (4) 信号量

2017-08-05 17:28:25 681

原创 android adb

1、ADB1、adb adb(Andorid Debug Bridge)是安卓调试桥,Android 调试桥(adb)是多种用途的工具,该工具 可以帮助你管理设备或模拟器的状态。在以前eclipse开发android的时候,经常提示ADB无法启动 或不能连接的错误解决,这个时候我们需要重启eclipse或者重启adb。as上使用的adb连接比较稳定,断开连接的情况比较少了。 ADB是android

2017-06-27 22:02:36 538

原创 Git常用命令

1、Git分布式版本控制系统Git与SVN的区别 1、SVN集中式了,就是只有在服务器上才有一个完全版本(历史版本),而其他都是从服务器上下载的版本(一般只有一个),当提交时,把当前版本提交给服务器。别人使用是从服务器上下载使用。 2、Git分布式版本控制,没有中央服务器。每一个电脑上都有一个完全(包括历史版本)库2、常用命令1、基本常识命令1、cd :进入到某个磁盘,或者磁盘的文件夹下$ cd

2017-06-26 22:37:05 445

原创 工厂模式

1、工厂模式的作用工厂模式是用来创建对象的。但是,创建可以用new创建对象,为什么要用工厂模式呢?比如说我们创建一个Sample对象Phone s=new Phone ();看上去并没有什么不妥的地方啊,平常也一直这样写代码的。但是我们想想工作中如果Phone创建的时候要传入一个对象 那么代码可以写成这样Phone s=new Phone (context);如果再加一个呢?Phone s=new

2017-06-14 00:32:58 505

原创 Android NDK(2、基础知识)

1、.cpp、.h、.c文件的区别1、.cpp和.h文件的由来编译器编译代码的时候首先先编译各模块,然后再将各模块链接为最终的可执行程序 一般来说,一个文件就编译为一个模块 但是,各模块要能链接到一起,必须有一些共同的地方,例如模块A里面有一个函数,模块B想要使用这个函数,它就必须知道模块A的一些信息才行。体现在代码上,就是有些代码必须在几个文件里都写一遍 此时我们将这样的代码写在一个单独的文

2017-05-23 11:07:41 597

原创 Android NDK(1、简单入门和遇到的问题)

1、NDK环境配置1、NDK下载和路径配置NDK Location 2、在grale.properity中添加android.useDeprecatedNdk=true2、简单示例1、Jni测试方法public class JniTest { static { System.loadLibrary("jniStr"); } public static nat

2017-05-18 22:18:57 451

原创 android内存泄露

1、android中的内存泄露对于android中一些无用的对象,比如activity,view长期持有这些对象,导致无法被GC回收利用,再次使用的,重新申请内存。长久下去,应用程序无法分配新内存,导致OOM。 大部分内存泄露,不会直接导致程序崩溃,但长期下去,应用程序无法负担。一反面使用app耗用大量内存,卡顿,别一方面。最终还是可能导致OOM导常。square比较好用的内存检测工具 http

2017-04-20 14:48:32 415

原创 android事件分发和案例

1、事件分发android控件层次嵌套关系(平级嵌套,父子嵌套)的视图关系,也就产生view(viewgroup)对触摸或者点击事件的消费关系,每一个控件都可以消费或者拒绝消费事件,在嵌套的布局中,关系可能更复杂些。android中的事件分发机制,保证我们想要的view获取到相应的事件。 view和viewgroup本质是做为view,但对于事件分发机制还是有很多区别,viewgroup可以做为v

2017-04-05 12:58:30 1909

原创 android sql汉字排序问题

android中一般排序按照时间的升降,但有时候需求要求按照字符串排序,刚开始想获取首字母排序,感觉比较麻烦,后来找到android的sqlite中有这样的原生功能android中默认汉字(字符串)排序规则按照unicode排序因此如果字段是汉语的话要用以下方式进行排序orber by 字段 COLLATE LOCALIZED ASCcollate用于字符串表达式排序规则转换 以下是sql中的语

2017-03-27 17:40:52 2147

原创 android tree树状列表+checkbox

在github上找了好久,想改成自己想要的效果不容易,是终改成了效果,记录一下 1、从服务器传来的数据,可能是深度树状结构,通过递归对树进行遍历 2、把json数据,转换成我们的TreeNode数据。 3、动态的设置list中距离左边的距离,实现伪层次结构。 代码调用package com.example.treedemo;import android.app.Activity;impor

2017-03-16 22:19:04 2319

原创 popwindow的封装

popwindow使用中还是遇到几个问题,记录一下 1、popwindow弹出位置,还未解决弹出在控件上方的办法(目前高度写死) 2、popwindow弹出时背景变灰(类似dialog的效果) 3、popwindow与Listview使用时,item宽度自适应解决。 4、简单的对popwindow进行封装,打造易用的popwindow。 1、PopList类package com.exam

2017-03-12 19:18:30 591

原创 一步一步学自定义View(1.简单入门)

1、自定义Viewandroid中可能遇到很多需求要求自定义view,一般github上都有各种各样的酷炫效果自定义view,特别是仪表盘,柱状图,饼状图都有,但还是不免遇到一些特别的需求,自定义样式难以修改开源库,因此还是需要自己来实现。接下来记录自己一点一点学习自定义view的过程。接下来主要实现这样的效果(简单的实现画圆,和简单的动画效果) 项目目录结构 2、自定义view中构造方

2017-02-23 22:24:54 1690

原创 Rxjava(2.Schedulers调度器)

1、Schedulers调度器Schedulers将用简单的方式创建多线程。对于android移动端来说,做耗时操作只能在子线程中,返回结果后刷新UI又得切换到主线程中。很多时候我们需要new Thread(),然后用Handler进行请求后的回调,或者借助Asynctask类。这样代码在一个类中这样写可能不多,但对于android来说,每个界面几乎都要请求网络,刷新UI。因此这样的工作一来增加的代

2017-02-22 15:22:09 2772 1

原创 android观察者模式

android设计模式学习笔记(何红辉,关爱民)1、观察者模式1、Subject抽象主题抽象主题,也就是被观察者(Observable)的角色,抽象主题角色把所以观察者对象保存到一个集合中,每个主题都可以有任意观察者的数量,抽象主题提供一个接口,可以增加和删除观察者对象。2、ConcreteSubject具体主题具体主题,该角色将有关状态存入具体观察者对象,在具体主题的内部状态发生改变时,给所有注册

2017-02-15 22:29:42 544

原创 dialog+多个listview+checkbox

android中有时候遇到dialog+多个listview+checkbox的选择问题如图所示: 在dialog中左边为4个TextView,右边为四个listview(感觉不太合适,但没找到比较好的解决办法)。左边选中时动态的隐藏与显示listview,最后取出四个listview中checkbox的值。代码如下: 在主界面中package com.example.mydialog

2017-02-03 21:44:16 1000

原创 Rxjava(1.基本使用)

1、rxjavarxjava的本质rxjava是响应式编程的意思,本质是观察者模式,以观察者observe和订阅subscribe异步响应式开发。RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by usin

2017-01-21 22:18:58 1108

原创 android小项目

1、接口地址网上找到一些免费公用的接口,表示感谢该博客是一个android中的小项目,主要封装和练习开发中遇到的常用知识点,进行总结。项目简单易懂,大神勿喷。http://gank.io/apihttp://showdoc.dagoogle.cn/index.PHP/6http://api.map.baidu.com/telematics/v3/movie?qt=hot_movie&locat

2017-01-20 21:00:55 2954

原创 rxjava+retrofit简单demo

rxjava+retrofit简单入门demo1、rxjava的三个行为1、观察者Subscriber2、被观察者Observable3、订阅关系observable.subscribe(subscriber)2、rxjava示例请求apihttp://api.map.baidu.com/telematics/v3/movie?qt=hot_movie&location=北京&output=json

2017-01-19 15:37:29 737

原创 popwindow+listview

实现下拉菜单,spinner一般也能够实现,但自定义比较麻烦,比如spinner有默认值时,还得动态添加spinner默认值,而用popwindow+listview也能实现相同的效果,并且自定义比较简单。 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/a

2017-01-01 23:33:23 4270 6

原创 EventBus3.0的使用

1、EventBushttp://greenrobot.org/eventbus/documentation/官方学习文档EventBus是Android下高效的发布/订阅事件总线机制。作用是可以代替传统的Intent,Handler,Broadcast或接口函数在Fragment,Activity,Service,线程之间传递数据,执行方法。特点是代码简洁,是一种发布订阅设计模式(Publish/

2016-12-25 21:11:45 1336

原创 java内存区域与内存异常(jvm学习)

深入学习java虚拟机笔记java虚拟机运行时数据区域java虚拟机在执行java程序的时候,会把它所管理的内存区域划分成若干不同的数据区域。这些区域有不同的用途,和创建销毁时间,有的区域随着进程的启动而存在,有些区域依赖用户线程的启动和结束而建立和销毁。 java虚拟机所管理的内存将会包括以下几个运行时数据区域:程序计数器java虚拟机栈本地方法栈java堆方法区1、程序计数器程序计

2016-12-23 23:31:34 456

原创 android柱状图和饼状图的简单使用(MPAndroidChart)

MPAndroidChartMPAndroidChart是一个开源的图标库,能够实现各种各样的效果,自定义比较容易,在项目中有简单使用,做一个记录。1、柱状图的简单使用效果图: 1、导包,在这用的是两个jar包2、xml文件中配置<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.an

2016-12-18 01:48:05 10046 5

原创 RecyclerView嵌套RecyclerView

在项目中有时候遇到recyclerview嵌套recyclerview的情况,虽然不建议这样嵌套使用,但有时候也没办法。 示例: 代码如下: 1、在Activity中代码如下package com.example.recyclerview;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;i

2016-12-11 23:20:46 3241

原创 java中面向对象

1、java面向对象java是一门面向对象的语言,在面向对象的世界中,把事务看成对象,面向对象的做法确实是把属性和功能封装起来,但是其核心是归类和抽象。把相关的属性和功能集中起来,把可以分离的部分隔绝开来,从而把复杂的业务逻辑切割成互相之间可以相对独立的部分,降低开发的难度。主要从下面几个方面理解: 1、理解类,接口,方法,构造器 2、理解修符:public,protected,private

2016-11-26 23:08:25 698

原创 Retrofit提交参数

1、Get请求url请求示例 http://gank.io/api/data/福利/{pageCount}/{pageIndex} http://gank.io/api/data/福利/5/1(5和1代表分页中的参数)public interface Api { //http://gank.io/api/data/福利/5/1 @GET("api/data/福利/{pageCo

2016-11-24 23:51:47 7043 1

原创 线程和线程池

这篇博客中简单介绍了下线程和线程池,今天主要 从示例上更加了解线程和线程池的工作 http://blog.csdn.net/androidxiaogang/article/details/49682885 文章为自己搜索总结,加上自己的一点看法,如果有误,欢迎斧正。1、进程,线程,多线程从普通PC应用上来讲: 开个QQ,开了一个进程,在QQ的这个进程里,发送消息或者下载文件之类的,这就是打了线

2016-11-23 18:31:19 564

原创 java中数组

1、数组是一种引用类型的变量1、java中的数组是用于存放一系列相同类型数组的(即可以存放基本数组类型,也可以存放引用用类型,只要类型相同就可以)2、数组初始化后,在内存中的大小已经确定,长度不可以改变,即使把数组中的数据移除,数组的大小,仍然不会改变,在内存中的大小依旧不变。3、数组的初始化是指为数组分配内存空间,并这每个元素赋初始值。比如int数组默认0,引用类型String(默认值null)。

2016-11-22 18:00:00 570

原创 retrofit

1、Retrofit介绍http://blog.csdn.net/androidxiaogang/article/details/51725798 在上篇博客中介绍retrofit入门官方介绍地址 http://square.github.io/retrofit/2、流程示意图3、Retrofit代码分析API类中public interface Api { //http://gank.

2016-11-20 23:05:54 673

checkboxDemo

解决listview+checkbox点击后滑动错乱问题,把checkbox的点击事件给item

2016-05-09

recyclerdemo

recyclerview的简单使用

2016-05-08

fragment demo

fragment类似新闻和新闻详情页面demo

2016-05-05

android NFC demo

android NFC demo自动打开网页

2016-05-02

自定义开关

android自定义控件,实现开关效果。

2015-12-17

android登陆

android中的登陆,服务器与客户端代码,包括get,post的两种方式

2015-12-10

android联系人搜索框

android联系得到联系人,并且设置搜索框,使用比较简单。

2015-11-30

头像设置PhotoDemo

头像设置,拍照从图片库选择,保存到本地,圆角显示。

2015-11-19

androidDemo

android头像设置,拍照从图片库,头像圆角设置

2015-11-18

android菜单

android中对于顶部导航栏菜单的封装

2015-11-06

DialogDemo

dialog的用法和dialog的常用对话框的封装

2015-11-03

MyHttpUtils

对http网络请求的简单封装,以获取服务器json数据为例。

2015-10-26

xutilsDemo

利用xutils从网络获取用gson解析json数据并显示到页面中。

2015-10-22

imageLoader

使用Universal-image-loader从网络加载图片到listview并缓存到本地

2015-10-21

VolleyDemo

利用volley框架加载从网络获取图片到listview

2015-10-20

viewpager引导页面

android中使用viewpager实现的引导页面

2015-10-16

autolineDemo

仿QQ通过正则提取电话号码,并自定义点击事件,。

2015-09-19

hellophonegap demo

hellophonegap demo一个简单的hellophonegap 入门示例

2017-12-24

极品五笔2014版本

极品五笔2014版本。极品输入法Vista新版全面支持GB2312-80简体汉字字符集与GBK扩展字符集的输入。GB2312-80简体汉字字符集共有6763个汉字字 符,包含99.95%常用汉字,基本上能够满足日常工作与学习需要。

2017-10-17

android treedemo

android 树开结构+checkobx

2017-03-16

popwindow+listview

popwindow+listview的封装

2017-03-12

dialog+checkbox

在dialog中左边为4个TextView,右边为四个listview(感觉不太合适,但没找到比较好的解决办法)。左边选中时动态的隐藏与显示listview,最后取出四个listview中checkbox的值。

2017-02-03

android小项目

android小项目,主要用于android基本知识的练习,Material Design包中控件练习和网络框架rxjava+retrofit的使用

2017-01-20

rxjava+retrofit

一个非常简单的rxjava+retorfit的小例子

2017-01-19

MPAndroidChart Demo

MPAndroidChart柱状图和饼状图

2016-12-18

recyclerview

recyclerview嵌套recyclerview

2016-12-11

android swiperefreshlayout

android中用retrofit请求,swiperefreshlayout实现分页

2016-11-20

android-calendarview

这个日历控件主要是在material-canendarview的基础上修改,符合自己的项目中。

2016-11-15

customview

android自定义view

2016-08-02

SwipyRefreshLayout实现分页

retrofit+recyclerView+swipyRefreshLayout实现上拉刷新和分页加载

2016-06-26

amtlib.framework.zip

amtlib.framework.zip

2016-06-22

retorfit demo

android retrofit demo

2016-06-22

android toolbar deom

android toolbar demo

2016-06-22

gradle2.5下载

android ndk开发中用到的gradle2.5

2016-05-29

空空如也

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

TA关注的人

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