- 博客(106)
- 资源 (1)
- 收藏
- 关注
转载 【必须学好】字典、哈希与Map
http://blog.csdn.net/cownew/article/details/6478993HashMap、Map等是很多公司面试、笔试的时候常考的题目,也是实际开发中经常用到的数据结构,必须好好掌握。因此我从《J2EE开发全程实录》中摘取了下面的片段,希望对同学们有帮助。学习时请对照着《数据结构》这门课中“散列”相关的章节复习。在实际问题中,按照给定的值
2016-06-15 14:36:46 4895
原创 java 安全了解
基本的安全知识概念:基本的安全知识概念:提到java安全,有一个重要的体系叫JCA,java cryptography architecture (java的加密技术架构),包括加密,摘要,签名等等。还有一种叫JSSE,java secure socket extension ,(java的安全的socket扩展技术) .下面是基本概念的说明。JCA部分:
2015-09-23 19:19:16 1274
原创 分析Glide生命周期注入原理
用过Glide 图片加载框架的都知道,当一个页面销毁 或者 不可见(onStop)后 ,这个页面所要加载的图片会做一些处理,这个过程是框架完成的 ,不需要开发者来操作。这个是怎么实现的呢?其实很简单,就是把Activity的生命周期 同步给 网络加载组件。比如 当Activity的onStop 方法回调时,最终会调用到网络组件的onStop方法,这样就可以实现。 如何将acti
2018-01-29 18:34:46 442
原创 热修复(java层dex分包方式实现)
修复原理:首先要了解 android 加载classes.dex文件的流程或原理。 1、android 如何加载classes.dex文件的? // 用来加载apk 的dex文件:PathClassLoader public Class findClass(String name, List suppressed) {
2018-01-19 16:36:01 571
原创 创建者模式(变形)
来介绍 创建者模式 的一个变种。分为三个角色,两个类。这种创建者模式 分为 创建者 Builder 角色 要创建的产品 Product .角色 产品属性封装 角色(内部类)总体思想: 一、将产品 和 其 属性 分离开。分别定义在不同的类中。二、构建者持有产品 及 属性封装 角色,并完成 对产品的 属性的最终 赋值 。先定义产品 :
2018-01-11 16:37:36 283
原创 动态代理 模式 理解
提到动态代理模式,首先要有两个三个基本的元素:代理对象,被代理对象 ,代理对象和被代理对象 共同的接口。java 反射包中提供了Proxy.newProxyInstance 来创建代理对象。下面做一个练习,代理一个对象的方法。首先定义代理对象和被代理对象 共同的接口package com.nzh.proxy;public interface IActivityManag
2018-01-09 12:51:23 261
原创 IPC理解2
根据gityuan大神总结再次理解IPC通信流程。http://gityuan.com/2016/09/04/binder-start-service/那么就从启动一个远程服务来分析整个IPC流程,最为应用开发者,底层的很多通信细节我不了解,但是整个流程上特别是底层和framework层的衔接上要有个清晰的人是。 下面就根据gityuan的总结 我再次总结加深一下。
2018-01-08 16:05:19 287
原创 hook AMS
通过了解activity启动流程,我们知道当调用startActivity后,会通过ipc和ActivityManagerService服务进行通信,然后做任务栈管理,包的解析等等工作,最终调用ActivityThread中的scheduleLaunchActivity方法来启动新的activity。 了解这一基本知识后,我来练习一个小demo: 拦截ActivityManagerSe
2018-01-04 17:07:39 488
原创 ipc 理解
一、IPC 描述ipc 就是跨进程通信。不同进程间为了安全 不能直接互相访问数据。需要通过IPC技术来实现,这里借用底层binder驱动来实现。android frameword 层哪些地方需要Binder 机制 呢?四大组件的创建,运行, 交互,生命周期的管理, 都是通过IPC 来进行的。使用系统服务也是IPC通信的过程。图片二、aidl 描述
2018-01-02 18:56:00 625
原创 自定义贝塞尔曲线运动
先看下效果:实现思路:1:第一步绘制,利用Path 类 画出一条二阶贝塞尔曲线。2:第二步记录曲线运动坐标点。模拟Path类 封装一个类MyPath,负责记录贝塞尔曲线各个控制点。 3:将 绘制的曲线的坐标点 和 运动的坐标点 设为一致,自定义一个二阶 贝塞尔曲线估值器, 并利用属性动画结合MyPath 工具类记录的坐标点,来控
2017-11-30 18:15:26 457
原创 自定义一个TagLayout
自定义一个标签自动排版显示的布局。效果: 思路 一、:确定布局的宽,高。 宽度确定:所有行中,宽度最宽的行即为这个布局的宽。 高度确定 :所有行的高度加起来 即 为这个布局的高度。 二、摆放子View思路 如果能够确定每一个Child的
2017-11-30 12:00:40 287
原创 2017全国省市区县 json数据
[{"name":"北京市","city":[{"name":"北京市","area":["东城区","西城区","朝阳区","丰台区","石景山区","海淀区","门头沟区","房山区","通州区","顺义区","昌平区","大兴区","怀柔区","平谷区","密云区","延庆区"]}]},{"name":"天津市","city":[{"name":"天津市
2017-11-07 11:24:11 5898 1
原创 RecycleView 浮动条简单实现
工作中遇到一个需求,列表滚动时要把其中一个item 悬浮在手机屏幕顶部。搞android 好几年了,我对自定义view一般都是改别人的。主要还是看需求,如果效果简单,组合几个view就可以达到效果,自己就顺手写了,如果自我感觉复杂一下,肯定baidu 改别人的。 先看看这个简单的效果:实现方式:1:根据需求定位需要悬浮的item, 我这里是第二个条目。
2017-09-12 16:09:17 793
原创 PopWindow 遇到的坑
在工作遇到使用popwindow ,本以为挺简单的,写完就交给测试了,没想到在4.4oppo手机上出现 各种问题,问题1:popwindow 被状态栏 遮盖住了一部分 问题2:点击 Popwindow 外部区域 没有消失掉,我代码里可是加了设置的。 问题3:弹出popwindow后 屏幕背景应该变暗,没有变暗。 问题4:没有弹出动画效果
2017-07-13 11:45:51 443
原创 使用开源的card.io 扫描识别银行卡
最近遇到一个需要调研的需求:识别银行卡信息具体要求如下:如果识别出了银行卡信息,那么就把银行卡信息和银行卡图片 发送到后台 如果 识别不了 最好把银行卡图片 截取下拉,送给后台,让后台去识别。yige 在github上看到一个card.io的项目,于是down下来 看了一下,识别效果:目前只识别出了 带突起银行卡号的 卡,具体还要看银行
2017-06-23 12:01:23 4812 1
转载 Scroller 及滑动机制 详解
转自:http://blog.csdn.net/briblue/article/details/73441698#t6一直以来,Android 开发中绕不过去的话题就是自定义 View,曾几何时,考验一个开发者能不能熟悉自定义 View 的基础流程作为分辨菜鸟和中级开发者的一个技术标准。但是自定义 View 本身而言,应对各种具体的需求,难度又不一样,这是因为牵扯到了各种各
2017-06-22 17:01:12 866
转载 java的位操作运算符
来自: http://blog.csdn.net/briblue/article/details/70296326Java 位操作这是一项很基础很基础的知识内容,在所有 Android 和 Java 开发者的学习之路上,大家都接触过,但是实际运用的场景却很少见,很多人估计都忘记有这个知识点了。事实上,在 C/C++ 开发领域因为与硬件的联系更紧密,所以位操作运算应用的更普遍
2017-06-22 16:35:37 427
原创 diolog 显示时 activity已经销毁判断
if (activity == null || activity.isDestroyed() || activity.isFinishing()) { DebugUtil.e(tag, msg); return;}
2017-06-22 10:52:04 2924
转载 Android 内存泄露实践分析
出自:http://wetest.qq.com/lab/view/161.html?from=adsout_qqtips_past2&sessionUserType=BFT.PARAMS.199167.TASKID&ADUIN=314148501&ADSESSION=1474160684&ADTAG=CLIENT.QQ.5455_.0&ADPUBNO=26550定义内存泄漏也
2016-09-18 17:30:07 4943
原创 自定义圆周运动动画理解
工作中遇到一个动画需求,于是从网上找了个例子,修改加注释理解了一下。理解步骤如下:1:继承Animation,复写 applyTransformation()方法2:在applyTransformation 中实现自己的动画算法,这个方法有两个参数 p1: float 动画变化速率 p2: 动画应用 对象3:在这个圆周运动动画中,首先确定圆周运动范围 0-360°
2016-08-23 17:12:11 1663
转载 简单粗暴!Android Activity泄漏问题解决方案
http://wetest.qq.com/lab/view/63.html测试跟你说你的XXActivity泄露了,你如何确认是否真的泄漏?确认泄漏后,你又如何定位是哪里的问题导致内存泄漏?Android日常开发中,内存泄漏的重灾区就是Activity,相信这两个是每个Android开发者都碰到过的问题,遇到这种问题,我们一般都会祭出我们的杀手锏:Dump Java H
2016-07-29 12:13:35 1004
转载 基于Android Studio的内存泄漏检测与解决
http://wetest.qq.com/lab/view/99.html自从Google在2013年发布了Android Studio后,Android Studio凭借着自己良好的内存优化,酷炫的UI主题,强大的自动补全提示以及Gradle的编译支持正逐步取代Eclipse,成为主流的Android开发IDE。Android Studio在为我们
2016-07-29 11:41:10 317
原创 git 管理项目
用Git 有一段时间了,但是没去细研究,只会基本的操作。这里记录一下我当前的项目是怎么用Git来管理的。 一: 首先是git分支管理,当前我们开发分为三个分支dev: 当前用与开发的最新分支,这个分支上的代码是最新的。 (名字就叫dev)mybranch: 当前用于开发的自己的分支,这个分
2016-07-08 17:59:29 432
原创 常用效果(六) : 格式化json 日志
从网上摘抄的,很方便。package com.hanya.financing.global.utils;import android.util.Log;import com.hanya.financing.global.WalrusApplication;public class DebugUtil { public static boolean DEBUG
2016-07-08 17:26:55 909
转载 缓存
引言我们都听过 cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准去选择缓存框架。在这边文章,我们会去讨论缓存,缓存算法,缓存框架以及哪个缓存框架会更好。面试“缓存就是存贮数据(使用频繁的数据)的临时地方,因为取原始数据的代价太大了,所以我可以取得快一些。”这就是 programmer
2016-07-06 17:44:50 248
转载 Android开发中一些被冷落但却很有用的类和方法
来自:http://luckyandyzhang.github.io/很不想转,但又怕用到某个知识点时 想不起来,在此 转载标记。 MediaMetadataRetriever顾名思义,就是用来获取媒体文件一些相关信息的类。包括一首歌的标题,作者,专辑封面和名称,时长,比特率等等。如果是视频的话,可以获取视频的长宽,预览图。http://devel
2016-07-06 16:40:26 4180
原创 奇怪的异常 Process 'command '---.exe'' finished with non-zero exit value 2
工作中遇到一个奇怪的异常,网上解决办法大部分说是 有重复的jar 。去除重复就可以了。折腾了半天不行。 还有可能是方法数目过多。Error:Execution failed for task ':app:transformClassesWithDexForGuanfangDebug'.> com.android.build.api.transform.TransformException:
2016-06-29 11:17:46 578
原创 模仿 (微信)消息通知效果
public void showNotification() { // 获取Service final WindowManager mWindowManager = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE); LayoutInflater layoutInflater
2016-06-15 15:19:17 2583 2
原创 常用控件(七) : Fragment 的简单使用
Fragment 简单使用 在activity 的布局文件中添加fragment <FrameLayout android:id="@+id/fl_main_content" android:layout_width="match_parent" android:layout_height="0dp" android:la
2016-03-30 10:20:00 462
原创 使用MAT 检测内存泄漏
要分析内存泄漏,首先要了解内存使用情况,这就需要专门的工具来协助。首先要产生内存使用情况的文件(.hprof),其次用工具(MAT)来分析即可。 android studio 和eclipse都可以 产生 app内存使用情况的文件。android studio没找到视图在哪儿,这里用eclipse来生成。 步骤:1:首先确保手机获得了root权限 或者准备好一个较好的
2016-03-24 17:25:01 479
转载 事件拦截和分发demo
实现效果:页面上竖直摆放3个listview,滑动左边和右边的listview正常滑动,滑动 中间listview 时 滑动整个屏幕。这个效果实现 需要自定义一个layout,然后对事件做处理即可。布局引用:<com.example.pinterestlistview.MyLinearLayout xmlns:android="http://schemas.android.com/
2016-03-22 17:34:03 366
原创 Activithy切换动画
很简单,在Manifest清单文件中 给application添加一个样式即可:theme= "@style/AppTheme" <application android:name=".global.WalrusApplication" android:allowBackup="true" android:icon="@drawable/ic_l
2016-03-03 11:12:06 330
原创 杂记录
一:一个网络请求包含什么信息呢?MyAndroidClient{url 请求地址 String handler 请求处理器 HandlerContext 请求标记 Activityparam 请求协议数据 自定义{ID //协议idrequestdata //请求数据responsedata //响应数据packData();
2016-03-01 18:14:14 472
原创 对话框样式的Activity 和 重复点击view
样式: @color/transparent true true @android:style/Animation.Dialog @android:style/Animation.Dialog @android:style/Animation.Dialog 引用:
2016-02-27 14:11:15 387
原创 简单缓存类
根据开源小项目 smartimageview 修改。 基本上照抄了过来。可以缓存json。分为内存缓存 和 硬盘缓存 。package com.hanya.financing.global.utils;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;imp
2016-01-28 17:24:09 445
原创 常用dialog(四) : 通用对话框 和 样式
使用方式:一个按钮 new MYAlertDialog(this, MYAlertDialog.TYPE_BUTTON_ONE, "提示", entity.getMessage(), "确定", "确定").show();二个按钮 new MYAlertDialog(this, MYAlertDialog.TYPE_BUTTON_TWO, title, content, leftbtn
2016-01-28 17:09:24 566
原创 常用控件(二.2) : RecycleView 的使用
1结合SwipeRefreshLayout 实现下拉刷新。2实现上拉刷新3更新列表中的数据4设置条目点击事件首先看RecycleView的布局文件配置:<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:o
2015-12-30 21:29:40 3186
原创 调用系统相机拍照时图片模糊
近期调一个bug,采用系统的相机拍照后图片变得模糊,经技术领导指点了一下,便找到了原因。当拍完照片后有两种方式 来获取图片 ,一 : 在 onActivityResult (....Intent intent) 中通过intent 来获取,这种方式系统会默认 把图片压缩,很不巧的是 项目的代码就是通过这种方式来 取得图片的。 protecte
2015-12-25 19:08:42 588
原创 常用控件(三) : 图片轮播控件
一:slider代替以前的viewpager的图片轮播http://uisource.com/project/android-image-slider/二:Picasso 图片加载Picasso.with(context).load(url).into(image);
2015-12-08 10:42:51 518
原创 JNI(四)、其他注意事项
JNI 注意事项:一、在开发时 首先要把环境 搭建好,包括各个文件配置,和C代码的实现。C代码可以直接return 返回值,先不做实现。二、常见报错:java.lang.UnsatisfiedLinkError: Native method not found: 要注意java方面名和C函数名 是否匹配了java.lang.UnsatisfiedLinkErro
2015-09-25 11:03:13 304
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人