自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

伊万-张的博客

不管什么年纪,都应该经常学习一个,Stay Young,Stay Simple

  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 将大象装进冰箱——百人团队敏捷实践

年初加入国家Top2的ERP供应商,担任高级产品经理,负责敏捷转型中的需求端改造。经过一段时间的打磨提炼,做出了不少成果,现将一些比较成熟的经验分享出来:一、用户故事plus1、ERP需求特点初入公司,盘点了过去一年的所有需求清单,发现客户对软件的需求类型,主要集中于以下两类:某个业务节点的功能优化对第三方的数据对接接口同时,我观察了这两种需求的处理流程发现:需求在向研发人员传递的过程中,方向极易偏离原因在于:需求调研方:未能准确识别用户角色、工

2021-08-22 12:45:20 152

转载 Android Native Hook 工具实践

前言在目前的安卓APP测试中对于Native Hook的需求越来越大,越来越多的APP开始逐渐使用NDK来开发核心或者敏感代码逻辑。个人认为原因如下:安全的考虑。各大APP越来越注重安全性,NDK所编译出来的so库逆向难度明显高于java代码产生的dex文件。越是敏感的加密算法与数据就越是需要用NDK进行开发。 性能的追求。NDK对于一些高性能的功能需求是java层无法比拟的。 手游的...

2019-07-23 09:26:26 4582 3

原创 Error occurred while communicating with CMake server.

项目10个月没打开过了,期间升级过两次Android Studio版本查了很久没解决问题,最后找到了一个极其简单的办法:把CMake里的3.10.2.4988404这个版本删掉,就OK了...

2019-06-04 17:52:21 877

原创 用最简单的方法,实现fragment数据懒加载

fragment自带这个方法:setUserVisibleHint(boolean isVisibleToUser)在fragment类里使用这个方法,然后进行判断:@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisib...

2019-05-07 15:29:33 241

原创 React Native运行问题:Warning: License for package Android SDK Platform 28 not accepted.

这个问题是我在安装RN环境成功、创建项目成功项目之后,准备安装项目的时候出现的问题运行的命令行为:react-native run-android在排除了Android环境变量、 Android/Gradlew运行权限、命令行所在目录的问题之后,我找到了问题所在:SDK Platform的协议没有被允许/换句话说,没权限解决方法:1.用cmd命令行,进入sdk/tools...

2019-04-15 17:13:24 9672 4

转载 vxlan技术简介

一 vxlan 简介VXLAN 全称是 Virtual eXtensible Local Area Network,虚拟可扩展的局域网。它是一种 overlay 技术,通过三层的网络来搭建虚拟的二层网络。每一个技术出来都有它要解决的问题,VXLAN 也不例外,那么我们先看看 VXLAN 到底要解决哪些问题。1 虚拟化(虚拟机和容器)的兴起使得一个数据中心会有成千上万的机器需要通信,而传统的 ...

2019-04-15 11:52:57 2395

原创 解决java关键字和bean变量名内容冲突的神器

@SerializedName("package")public String package;SerializedName关键字,横扫一切关键字冲突~~

2018-02-24 15:48:10 5288 1

原创 解决android.os.NetworkOnMainThreadException

今天照例打开项目,开启socket链接的时候,log打印总是提示异常。于是仔细查了一下,发现是网络请求在主线程打开了,导致了NetworkOnMainThreadException解决思路:如果在Main Thread里声明了一个handler,这个handler所Post 的 Runnable(Thread)、以及处理的message都是在当前的mian线程里,非子线

2017-12-19 10:44:26 1668

原创 史上最坑爹报错,没有代码行提示的崩溃:WindowManager$BadTokenException,is your activity running?

这两天检查报错日志的时候发现了一个没有代码行提示的报错:经过仔细检查,发现一句比较有价值的信息:但是,试过了网上所有查到的解决办法,都没有能解决我的这个问题,这让我感到有点头疼于是开始梳理代码逻辑:这个报错,发生的情况,只有一种:在没有登录的情况下,第二次进入APP的时候会直接闪退报错因此,果断review代码:

2017-09-11 14:55:15 949

原创 Python学习笔记(一)

特性1:命名关键字*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。优点:命名关键字可以让代码参数更清晰,简洁;有默认参数值的函数,有了命名关键字后,更易阅读和使用特性2:切片(Slice)操作符>>> L[0:3]['Michael', 'Sarah', 'Tracy']L[0

2017-08-11 16:45:13 364

转载 Java多线程和并发性知识点总结

一、 什么是进程、线程?线程和进程的区别?1. 进程 当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序。 进程是操作系统进行资源分配和调度的一个独立单位。进程的三个特征:独立性 独立存在的实体,每个进程都有自己独立私有的一块内存空间。动态性 程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。并发性 多个进程可在单处理器上并发执行。并发性和并行

2017-06-28 17:09:08 352

原创 5月项目经验和技术点文章总结

Android 实现 LED 灯显示效果https://juejin.im/entry/593108e0fe88c200619e7e6eAndroid 性能优化全方面解析https://juejin.im/entry/5930be73a22b9d0058bbe44bKotlin 初体验https://juejin.im/entry/592e241da22b9d0

2017-06-02 23:14:20 828

转载 关于C++ const 的全面总结

C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用  如下表所示:No.作用说明参考代码

2017-05-22 14:48:17 424

原创 如何获取当前GPS坐标附近最近的地点名称?

这两天公司群里发了一个滴滴打车司机端的截图相当喜感,司机端显示的乘客上车地点居然叫:“当前位置”这这这,你这让司机师傅很忧伤啊,地名都没,如何才能接到你?无独有偶,正好我前段时间刚刚解决了这个问题,问题在于乘客端对地名的判断!!在乘客点击“订车”按钮时,要先判断地点的名称和坐

2017-05-04 14:58:00 2673

原创 关于PopWindow,不得不注意的那件事

今天在写一个底部弹出框的时候,本来一切都很顺利,但是运行之后莫名冒出来一个空指针:琢磨了半天之后,发现是这个方法:findViewById如果是在popWindow等自定义布局里的带ID控件,请在这个方法前加上他的母布局!如图:

2017-04-12 15:02:40 837

原创 仿滴滴打车的平滑移动附近车辆效果实现全流程,基于高德地图

开端:打开滴滴打车APP,会发现地图上的车辆显示的十分形象,车辆会在路上平滑的加减速,转向停车什么的有种即时战略的感觉,看起来挺有趣:为了研究这个效果如何实现,我开始了探索之旅:一.探索阶段:1.旧版平滑移动首先找到的是百度“高德地图平滑移动”结果里的这个文:http://lbs.amap.com/smart/transportation/skill

2017-03-18 11:46:26 25030 12

原创 秒解!友盟多渠道批量打包+Bugly运营模块获取渠道功能流程详解

发布新版本的时候总是觉得好辛苦各种渠道二十多个,一个一个打包,任务繁重多渠道打包工具走起!步骤如下:1.在Gradle里增加渠道名称和加载渠道://渠道FlavorsproductFlavors { baidu {} qq {} xiaomi {} qihu360 {} wandoujia {} huawei

2017-03-17 11:20:29 2008

原创 工具类:将毫秒转换成天时分秒

如果你想拿到安卓系统的开机时间,那么会发现一个很神奇的事实:你拿到的是一个很长的数字,就是毫秒值这个值肯定是不适合往服务器传递的,后台看见估计要蒙蔽,因此需要规范化一下,把毫秒转换成几天几小时几秒什么的~二话不说直接上方法,传进去一个long,出一个String:/** * 毫秒转化时分秒毫秒 */public static String formatTime(L

2017-03-10 18:53:17 3822 1

原创 Android底部弹出栏的新选择:Google新控件BottomSheetBehavior深坑钻探失败经验总结

下面这俩布局不能共存:(CoordinatorLayout)和(drawerLayout)  说起来这俩布局就想掬一把辛酸泪。。。。项目本来就有drawerLayout作为用户设置类的操作栏,后来参考滴滴打车的UI,想把“上下车地点”界面从Intent跳转变成在主界面弹出下部菜单,查了查实现方式,方法比较多:fragmentDialog、PopupWindow、和B

2017-03-01 20:02:46 1093

原创 如何对开发团队的人员进行绩效管理?

原则:“不要瞎搞”,宁肯全用主观评价,也不要引入错误的量化指标。比如代码量、bug密度之类,根本无法用来评价开发质量质量可以分成三部分:代码质量:代码本身的质量决定了对后续开发的友好程度研发质量:研发阶段产生的bug运维质量:产品上线以后的故障情况和资源消耗情况第一部分可以code review方式粗略检查代码质量,评估代码健壮性第二部分可以在运营阶

2017-02-13 11:00:19 1201

转载 java web分层的思想

以下内容参考《java web开发实战宝典》《java高手真经(应用框架卷)》2本武林秘籍介绍的思路是不一样的,宝典有各种基础内功,真经开始动手很快。MVC(Model---View---Controller)是存在于服务器表现层的模型。Model,代表核心功能,包括业务逻辑层和数据库访问层;业务逻辑层由Java Bean或EJB创建,数据库访问层(数据持久层)由JDBC或Hibern

2017-02-07 17:57:35 1231

原创 那些年,被问过的Java面试题

SSH类:Struts:的原理(http://blog.sina.com.cn/s/blog_5cf3a3ea0100dik7.html);工作方法;集成方法;常见类Spring:的原理;运行原理:集成方法;常见类;解决多数据源(http://itlab.idcquan.com/Java/Spring/964602.html)Hibernate:集成方法Serverle

2017-01-03 19:54:48 397

原创 对JavaWeb的结构认识

BS(网页+服务端)相关:JSP:一项能将静态代码(HTML,CSS)和动态代码(JavaScript)结合起来的技术,能在HTML页面加入Java代码HTML、CSS、XML、DTD:能构筑起页面的静态效果,同时对其页面格式、页面内容的格式进行标签化规范,使之更便于找到页面的错漏之处HTML5:替代旧HTML的新网络标准,推出了众多新标签新功能,如视频,自定义图形,插件>等

2016-12-26 13:05:00 704

原创 大型网站架构升级解决方案之:数据库

前言:今日读了《大型网站技术架构》这本书,大大扩展了对网站从小到大一步步演变过程中的技术演进的认识不过在读完之后,痛感这本书里谈及的那些具体的技术细节,并没有更深层次的实践步骤的探讨果断更进一步,寻觅各种技术的解决方案

2016-12-23 12:33:38 1469

原创 如何用Eclipse快速开发SSH框架项目

创建Dynamic Web Project并且导入jar包。我习惯上把classes文件夹由build文件夹内转移到WEB-INF下。在项目上右键Build Path——〉Configure Build Path。设置Default output folder。在WEB_INF下面创建web.xml并配置Struts的Filter和Spring的Listener。在WE

2016-12-08 21:59:59 582

原创 Unity3D适配安卓时的那些坑

Unity3D适配安卓时,会遇到好多奇怪的问题,这是我的遇到的两个问题,顺带附上解决办法~

2016-11-14 10:56:11 3897

原创 人生经验——如何在三分钟内完成开发周期评估

想象一下,将来有一天你坐在“产品经理”或者“研发经理”的座位上老板/领导兴冲冲的跑来找你,手里拿着一摞纸,上面是各种项目的技术方案一脸殷切的望着你,然后说:“这些项目哪些适合咱们做?”

2016-11-07 20:50:35 6459 3

转载 greendao中的注解

(一) @Entity 定义实体@nameInDb 在数据库中的名字,如不写则为实体中类名@indexes 索引@createInDb 是否创建表,默认为true,false时不创建@schema 指定架构名称为实体@active 无论是更新生成都刷新(二) @Id(三) @NotNull 不为null(四) @Unique 唯一约束(五) @ToMany

2016-09-21 11:05:21 860

转载 java中byte数组与int,long,short间的转换

在项目中遇到了和C++进行通讯,并保持心跳包的需求。因此需要以byte[]这种奇葩的方式进行数据通讯,因此产生了大量的数据格式转换需求,特此记录各种数据与byte[]互相转换的方法。

2016-09-18 09:51:03 529

转载 Android GridView自适应Item高度

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=246995&ctid=200当GridView外面有ScrollView时, GridView只显示一行Item的高度,为使GridView跟所有Item高度一致使用这个GridVew替换就可以.public class NoScrollGridView extend

2016-09-02 17:33:39 2047

原创 Android Studio打包APK之路

Android Studio的编译审查严格程度远超ADT这导致了从Eclipse移植过来的项目,无法正常通过AS的编译审核会出现大量的各种类型报错.........................诸如.9图片和依赖包缺失等小问题,比较容易解决然而当问题出现在打包环节呢?第一次面对看到五百多行的warn提示,千头万绪还真是棘手A方案:clean project

2016-09-02 14:00:23 349

转载 使用SQL语句操作数据库

当然,你可能已经学过SQL,会写相关的SQL语句,而且不想用Android提供的这些API,你可以直接使用SQLiteDatabase给我们提供的相关方法:execSQL(SQL,Object[]):使用带占位符的SQL语句,这个是执行修改数据库内容的sql语句用的rawQuery(SQL,Object[]):使用带占位符的SQL查询操作另外前面忘了介绍下Curosr这个东西以及相关属

2016-08-26 16:57:58 634

转载 录像:过时的方法setPreviewFrameRate 替代办法

setPreviewFrameRate是在api level1就开始使用了,然后不是简单地设置这个方法就可以让摄像头每秒捕获多少帧数的。比如我设置2,它一秒不会只捕获2帧数据的,从日志记录来看,相当糟糕,不会是预期的2帧,于是我查找文档,发现这个方法已经废除了。在api level9时加入了一个方法setPreviewFpsRange (int min, int max)预览帧数从

2016-08-17 10:23:53 3467

转载 身份证号码格式验证

该方法能用来验证editText输入框的内容是否符合身份证号的标准格式

2016-08-17 09:38:32 3716

转载 Android开发笔记——视频录制播放常见问题

转载自:http://www.cnblogs.com/younghao/本文分享自己在视频录制播放过程中遇到的一些问题,主要包括: 视频录制流程 视频预览及SurfaceHolder 视频清晰度及文件大小 视频文件旋转一、视频录制流程    以微信为例,其录制触发为按下(住)录制按钮,结束录制的触发条件为松开录制按钮或录制时间结束,其流程大概可以用下图来

2016-08-11 16:27:39 1147

转载 数据库设计三大范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。                 在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库

2016-06-16 14:02:31 253

原创 PHP服务端常用正则表达式

<?php$user = array(    'name' => 'spark1985',    'email' => '[email protected]',    'mobile' => '13312345678');//进行一般性验证if (empty($user)) {    die('用户信息不能为空');}if (strlen($user['name

2016-06-08 11:28:25 369

原创 职人事件簿——作为项目经理,是时候展现真正的技术了

你渴望力量吗?来,项目经理来帮你。真正优秀的项目经理,是能够引领代码君走向正途的伟大男人啊!少年啊,跟随经理的脚步,快去创造奇迹吧~

2016-05-22 21:55:30 977

转载 WebView开发中的常见问题

自Android 4.4起,引入了webView,使用需要注意的事项:1.多线程如果你在子线程中调用WebView的相关方法,而不在UI线程,则可能会出现无法预料的错误。所以,当你的程序中需要用到多线程时候,也请使用 runOnUiThread()方法来保证你关于WebView的操作是在UI线程中进行的:runOnUiThread(newRunnable(){ @Override

2016-04-27 09:17:03 449

原创 AES加密方法

import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import javax.crypto.BadPaddingE

2016-04-08 09:18:31 801

恋场求生,一个展示游戏效果的demo

一个展示游戏效果的DEMO,但是摘要必须大于50个字节!摘要必须大于50个字节!摘要必须大于50个字节!摘要必须大于50个字节!摘要必须大于50个字节!摘要必须大于50个字节!摘要必须大于50个字节!摘要必须大于50个字节!

2017-12-13

空空如也

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

TA关注的人

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