自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java设计模式—策略模式

定义 通过选择策略类,来执行不同算法分支。核心是通过注入对象,改变行为。此模式其实就是spring IOC思想。优点 1. 算法可以自由的切换。 2. 避免使用多重条件判断。 3.便于扩展:增加一个策略只需要添加一个接口即可。缺点 1.复用性不高,每一个策略都是一个类,策略多时类也会增多。 2. 所有的策略类都需要对外暴漏,增加了用户的使用成本。使用场景 1. 多个类只有算法或者行为上稍有不同。 2. 需...

2021-09-17 16:00:07 97

原创 Java设计模式—建造者模式

定义 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。优点 1. 易扩展。 2.便于控制细节风险。可以对建造过程逐步细化,而不对其他模块产生任何影响。 3. 封装性,使用者不需要知道内部具体实现。缺点 1.功能必须有共同点。 2. 如果产品内部错综复杂,需要定义很多个建造者类,使系统变得庞大。使用场景 1. 隔离复杂对象的创建和使用,相同的方法,不同执行顺序,产生不同事件结果。 ...

2021-09-17 15:51:05 126

原创 Java设计模式—代理模式

定义 该模优点 高扩展性和复用率、符合开闭原则缺点 过多的使用适配器,会让系统不易把握,降低了可读性。使用场景

2021-09-17 15:37:16 101

原创 Java设计模式—装饰器模式

定义 动态的给一个对象增加额外的职责,为的是功能增强。优点 符合开闭原则缺点 多层装饰比较复杂使用场景 需要透明且动态的扩展类的功能时。前提是目标存在抽象接口...

2021-09-17 10:42:36 93

原创 Java设计模式—适配器模式(粘合剂)

定义该模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。优点 高扩展性和复用率、符合开闭原则缺点 过多的使用适配器,会让系统不易把握,降低了可读性。使用场景 1. 当前类的api不满足需要,但是又想用这个类,此时就可以使用适配器模式,进行改造。 2. 想要建立一个可以重复使用的类,将来可以到处复用。 3.需要一个统一的输出接口,而输入端的类型不可预知。适配器...

2021-09-11 18:23:19 75

原创 Java设计模式—外观(门面)模式

定义 糅合功能,对外只提供一个入口。通过引进一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度。优点 1. 低耦合:降低了客户端与子系统之间的耦合,使子系统更容易维护和扩展,提高了子系统的独立性。 2.简单易用:客户端不需要知道子系统的具体实现,只跟外观层交互,委托外观层去实现即可,为一个复杂的子系统提供了简单的统一入口。 3.层次划分明显:子系统可以把对外的方法提供给外观层,对内的方法隐藏...

2021-09-11 17:14:31 89

原创 Java设计模式—单例模式

定义 保证只有一个实例存在,并提供一个访问它的全局访问点。优点 1. 避免对共享资源的多重占用。 2. 节约系统资源,当需要频繁的去创建以及销毁一个对象时,该模式可以提高系统性能。缺点 1. 没有抽象层,不利于扩展。不适用于变化的对象中 2. 职责过重,违反单一职责原则。使用场景 数据库的连接池、多线程的连接池、日志文件的实现等。具体实现 1. 为防止创建多个实例,构造函数进行私有化。 2...

2021-09-11 16:48:44 94

原创 Java设计模式—六大原则

单一职责一个类只负责一项职责。作用:提高类的可读性、可维护性,降低类的复杂性以及由于变更引起的风险。里氏替换原则该原则针对继承是对子类型的特别定义:子类对象能够替换父类对象,而程序逻辑不变。1.如果继承是为了代码重用,即共享方法,那么共享的父类方法就应该保持不变,不能被子类重新定义。子类只能通过添加新的方法来进行扩展。此时虽然子类和父类都可以被实例化,但是子类继承的方法和父类是一样的,即使子类把父类的方法覆盖掉他们的逻辑还是一致的,自然也就不会有问题。2....

2021-09-11 11:10:27 75

原创 Android adb执行可执行文件elf

步骤一:将文件拷贝到可执行文件夹下,我使用的是RK3399开发板步骤二:adb shell cd到文件所在的路径下步骤三:执行./test.elf

2021-02-05 14:25:24 743

原创 bin文件保存

C++void saveFeature(const char * filePath,const char* data,int len){ FILE *fp=fopen(filePath,"wb"); if(fp) { fwrite(data,512,len,fp); fclose(fp); }}// FILE *fp = fopen("/sdcard/s320/enroll_byte_jni.bin", "wb");// if

2021-01-28 17:12:43 1315

原创 E IMemory : cannot dup fd=988, size=4968448, err=0 (Too many open files)

错误日志 E IMemory : cannot dup fd=988, size=4968448, err=0 (Too many open files) E IMemory : cannot map BpMemoryHeap (binder=0x72af762820), size=4968448, fd=-1 (Bad file descriptor)背景:自主研发的虹膜识别一体机,从硬...

2019-11-01 15:04:40 1771

原创 RK3399开发板上插拔usb鼠标 程序崩溃

在android程序中插拔usb鼠标时,Activity会重新加载,即会执行onPause ——> onStop ——> onCreate ——>onResume。直接的现象就是程序会崩溃。解决办法:在AndroidManifest.xml中设置如下属性,即可解决<activity android:configChanges="keyboard|keyb...

2019-11-01 15:01:57 1335

原创 surfaceview相关显示问题

最近做的项目会频繁的刷新bitmap,第一时间想到的是用surfaceview,使用的过程中也是遇到了诸多问题,特此记录一下1.自定义surfaceview,由于每次绘制的图像大小不一致,所以当刷新小图的时候,底下总会显示最后一张大图,可能是因为它本身的双缓存机制吧,具体原因没细查,解决办法就是每次绘制之前进行清屏操作,代码如下:Canvas.drawColor(Color.TRANSP...

2018-11-23 12:01:46 2390

原创 用ndk环境编译android可用的so库

需求:由于算法人员已经用c++写好了接口,现在要迁移到Android上来,不可能让算法的代码在重新在androidstudio上在重新编写一遍,所以只能把现有的代码封装成android可调用的so库,然后利用JNI在封装成android可使用的接口首先第一步我们来讲:如何使用ndk环境编译cpp源文件供Android调用说明:Android上所用的so库必须在NDK环境下编译的才可以,我之

2018-01-09 10:15:57 1350

原创 javaEE+tomcat+mySql实现服务端http接口

之前一直想了解一下java后台接口代码实现的过程,今天正好搭建了一下环境,写了个demo,特此记录一下,以方便自己和有需要的小伙伴学习~第一步:安装javaEE版的eclipse。至于如何安装网上已经有很多教程,在此就不多说了第二步:下载tomcat压缩包解压缩到你选定的目录下,在环境变量中配置,配置此步骤也省略不写了第三步:安装mysql数据库,安装成功之后为了方便图形化操作可以安装

2017-09-15 09:09:42 2150 1

翻译 回调函数的使用

1.定义接口package com.app.util;public interface ZYJCallBack { public void dataResult( String resultString ) ; public void progress( Integer progress ) ; public void start() ;}2.实

2016-11-08 15:22:02 490

原创 本地提交SVN报错 提交文件 is not known to exist in the repository and is not part of the commit, yet its child

在提交svn的时候出现了如下错误:从字面意思上看是说提交失败,原因是因为它存在子级文件夹,我们先把父级文件夹提交了之后在去提交子级文件夹,最后一级文件夹和文件则可以一起提交

2016-10-18 10:31:44 8736 1

原创 androidStudio V4包冲突问题以及解决方案

今天在集成一个原生类库的时候出现了一个错误,错误日志指向了我之前项目里的一个xml文件android.view.InflateException: Binary XML file line #34: Error inflating class com.tafirt.mymenulibrary.FabSpeedDial     但是我在没集成这个项目的时候是没有错误的,所以可能是引用li

2016-10-17 19:23:16 3086

原创 Android AsyncTask

我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制。 不过为了更加方便我们在子线程中更新UI元素,Android从1.5版本就引入了一个AsyncTask类,使用它就可以非常灵活方便地从子线程切换到UI线程,我们本篇文章的主角也就正是它了。 AsyncTask很早就出现在Android的API里了,所以我相信大多数朋友

2016-06-18 15:44:09 1300

原创 安卓中的UI

1)Buttons (按钮)a)Button按钮添加onClick监听事件b)ImageButton图片按钮添加onClick监听事件c)Switch(开关):checked应用:可以添加onClick监听事件实现相应事件可以用if判断Switch btn=(Switch)v;//开关     if(btn.isChecked()){     Toast

2016-06-11 18:03:31 609

原创 布局学习

ViewGroupWidth/Height , Padding/marginFrameLayoutgravityLinearLayoutOrientation/horizontal/verticalweightRelativeLayoutalignBaseline/(Left/Top/Right/Bottom) Start/End

2016-06-07 17:30:43 455

转载 java如何解析多层json

1. 使用标准的Json对象,如org.json.JSONObject json = new org.json.JSONObject(yourJsonString);然后通过get(keyString)逐个解析2. 构造一个类MyObject,根据你提出的问题,其中添加 String name,List<MyObject child, 两个属性,增加getter setter 方法,通过com.

2014-05-08 10:24:43 2382

翻译 时间格式转换

Time localTime = new Time("Asia/Hong_Kong");  localTime.setToNow();  String time = localTime.format("%Y-%m-%d %H:%M:%S");  Log.e("", "用DateFormat.getTimeInstance()格式化时间后为:" + time);

2013-12-19 16:24:14 641

翻译 AutoCompleteTextView的使用

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_p

2013-12-19 15:39:26 505

翻译 edittext默认没有焦点

android的EditText,焦点会默认在第一个EditText中,如果不希望其有焦点则最简单的办法是在EditText前面放置一个看不到的LinearLayout,让他率先获取焦点:        android:focusable="true" android:focusableInTouchMode="true"        android:layout_width="

2013-12-19 15:30:18 660

原创 点击空白处不消失的对话框

new AlertDialog.Builder(FlightPayActivity.this)    .setCancelable(false)    .setTitle("温馨提示")    .setMessage("是否要删除 ?")    .setNegativeButton("点错了",      new DialogInterface.OnClickListener(

2013-12-11 16:15:35 1323

翻译 点击回退键调取的方法

@Override public boolean dispatchKeyEvent(KeyEvent event) {  if (event.getAction() == KeyEvent.ACTION_DOWN    && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {       return false;  }  re

2013-12-11 16:14:41 609

翻译 把用逗号分割的字符串转换成数组的实例

public class StringSplitDemo {     public static void main(String[] args) {             String str="this,is,a,test";       String[] result=str.split(",");       //split(正则表达式)         

2013-12-11 16:12:15 1510

转载 map.values()和map.keySet()的含义

有一个Map对象,这时候使用keySet()方法获取所有的key值,比如:   Map map = new HashMap();   map.put(1, "a");   map.put(2, "b");   map.put(3, "c");   map.put(4, "d");   Set keys1 = map.keySet();   Set keys2 = map

2013-12-11 13:30:40 6689

转载 android 隐藏软键盘总结

1.每次启动新的Activity的时候,输入法总是弹出来,太烦人了。主要原因就是页面上方有个EditTexit,每次都自动获取焦点。注意要求是:每次启动新的Activity的时候,EditTexit不要获取到焦点或者获取到焦点也不让输入法弹出来,并不是阻止输入法使用。只要第一次启动的时候别弹出来就行了,如果主动点到EditTexit的时候输入法还是得正常的弹出来的解决:在OnCre

2013-11-29 16:46:34 725

各种炫酷的loading

该项目中,包括各种动画的和非动画的dialog集合

2014-09-12

高德历史轨迹回放

高德地图实现轨迹回放,添加开始暂停继续功能

2013-12-19

viewpager重写

重写viewpager下边带小圆点,滑动到最后一页时可以继续滑动到应用中

2013-12-19

viewpager导航页

viewpager加小圆点,点击最后一页的按钮跳转到应用中,适合安卓导航页的添加

2013-12-19

空空如也

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

TA关注的人

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