
Android
文章平均质量分 76
林锐波
share.
展开
-
android 屏幕适配,hdpi,xhdpi,xxhdpi理解,常见出图
屏幕适配首先理解下各个尺寸单位代表的意思尺寸含义 px: 像素 dip: Density-independent pixel 独立像素密度 dpi: dot per inch 分辨率 ppi: pixel per inch 指每英寸所拥有的像素 ppi计算:(宽度的平方 + 高度的平方)开根号 / 对角线的长度 Density: density值表示每英原创 2015-12-15 17:55:04 · 10777 阅读 · 0 评论 -
Lambda的使用与实战
简介(下面的简介也可以自己百度,一般进来的都是想知道怎么去用,所以这里主要也是重点在用法与实战上)Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式还增强了集合库。 Java SE 8原创 2016-04-20 15:33:56 · 3609 阅读 · 0 评论 -
ListView常见的优化方式简述
ListView的优化对于ListView来说,应该算是布局中几种最常用的组件之一了,使用也十分方便,下面个大家介绍一下两种常见的优化方式.1.条目复用优化其实listview的工作原理就是,listview在请求屏幕可见的item数时,convertView在getVIew中是null 的.但是当屏幕向下滑动的时候(比如该屏幕尺寸可显示7条teim),在item1被隐藏,此时出现item8时,原创 2017-01-13 14:39:31 · 2742 阅读 · 4 评论 -
蓝牙之数据传输问题
蓝牙数据传输问题对于蓝牙来说google已经封装好了很多api所以使用起来并不会很难,但是实际开发中蓝牙开发最头疼的问题不是如何去调用api,而是数据的交互方面,如长连接,数据续传,硬件接受速率等问题.打开蓝牙有几种方式?首先我们先了解下几种常用的打开方式.第一种方法相对简单,直接调用系统对话框启动蓝牙: 在AndroidManifest文件中添加需要的权限,高版本也不需要动态授权:<uses原创 2017-01-13 16:43:08 · 18583 阅读 · 8 评论 -
Android签名与权限的安全问题(3)
签名和权限的作用Android签名中使用到的一些加密技术有:公/私钥, SHA1(CERT.SF,MANIFEST.MF), RSA(CERT.RSA), 消息摘要,移动平台中的主流签名作用:Android平台中是使用自签名 自签名,证书的签名者和证书拥有者是同一人.自签名的完整性认证自签名是没有信任模式的,因为自签名信息是自己的,对无法知道该信息是不是安全,我们只能对其的完整性进行认证.限制原创 2017-01-11 19:03:20 · 2281 阅读 · 1 评论 -
Android的四大组件及应用安装安全问题(4)
Android的四大组件及组件间通信如果想对四大组件有深入的了解,那永远不要停留在一些条条干干的SDK API的认识,需要了解他的通讯,他的复用,他的边界问题,这样才会对四大组件有透明的认识.四大组件简洁Activity没有Activity 可以显示UI吗? 可以的,我们可以直接操作view显示,其实Activity 只是为了让这些view 富有逻辑的意义,也就是说Activity 主要是让这些原创 2017-01-12 13:34:01 · 1181 阅读 · 0 评论 -
操作系统安全机制(2)
Linux操作系统安全机制先说明 Linux 更适合学习,Android也基于Linux.进程和线程进程: 可执行文件的活动表现,如Android中Activity的生命周期.对于进程来讲,他有很多独立的空间,如堆和栈,所以进程是资源的最基本的分配单位.线程: CPU(核的调度单位),他可以让一个进程的任务在CPU下多管齐下,并发执行.所以线程是CPU的最小调度单位.进程的地址空间边界一个虚拟原创 2017-01-10 17:53:11 · 1778 阅读 · 0 评论 -
Android中典型的ROOT原理(5)
ROOT的作用Customization 用户的个人定制,如删除一些预安装,定制开机动画等.特权操作 所有需要特权操作的基本都是要通过ROOT,这也是ROOT的初衷.ROOT的第一步:寻找漏洞并安装特权文件Hacker会寻找漏洞,如UID设置失败(ADB)手机ROOT后,最重要的是,给手机安装su程序和superuser apk. su: 一般都被安装在/system/xbi原创 2017-01-12 21:23:10 · 2140 阅读 · 2 评论 -
java回调函数这样说,应该明白了吧!
有哥们问我回调怎么用,回调怎么理解?怎么说好呢,只可意会不可言传呐,非也,回调在实际开发中使用频率其实是很高的,恰好我小时候也被回调函数欺负过,竟然问了,那么肯定要好好分享一下我的一些经验.网传回调的理解 所谓的回调函数就是:在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供原创 2017-03-01 21:04:37 · 3277 阅读 · 5 评论 -
java代理模式-原来你是这样的代理
这几天在看一些框架源码时看到了一个很奇妙的设计模式,有种熟悉个感觉,一时想不出是什么模式,后面经过了解才知道是动态代理,就这样带着好奇心学习了这个模式,更深入了解代理会发现不仅有静态和动态,还有很多其他的代理类别,果然兴趣是最好的老师,效率不错,下面是我一些总结. 一起来体验下,你也会发现,原来你是这样的代理. 什么是代理?在<大话设计模式>中说到,代理模式,为其他对象提供一种原创 2017-03-26 23:15:03 · 3301 阅读 · 12 评论 -
你知道RxJava也可以实现AsyncTask吗?
使用RxJava实现异步操作(AsyncTask)常见的异步操作我们可以联想到AsyncTask或者handler,其实google创造出的目的也就是为了让代码更加清晰明了,让代码更加简洁. 而Rx系列的出现也就为了实现代码的逻辑清晰,结构简单问题.在gitHub上的介绍是 a library for composing asynchronous and event-based programs原创 2016-09-22 14:52:42 · 5983 阅读 · 1 评论 -
深入理解android6.0 RunTime Permisstion
What?了解下runtime permission2015.8 google发布了android 6.0,sdk版本为23,一款”为工作升级而生”的android系统.如6.0新加入的指纹识别;Doze电量管理;快速充电切换… 还是说本文的重点吧,运行时权限,为了避免一些恶意app行为,如后台流量偷跑,偷偷扣费等情况,google对安全做了进一步的整理和优化.对比android6.0之前有什么区原创 2016-05-20 15:09:24 · 3245 阅读 · 0 评论 -
Android7.0 多窗口你值得拥有
Android7.0 多窗口你值得拥有什么是多窗口分屏? 多窗口分屏其实在国内并不陌生,已经有一些手机和平板搭载了“分屏多任务”和”APP窗口化”功能,但这些都是手机厂商自主定制系统中添加的功能,并非安卓原生所有,因此他们的实现方式可能会不一样,但是现在google原始开始支持,这样对厂商来说也有了标准,对体验和性能上也会比较好.多窗口解决什么问题(平板适配问题). 一些android ap原创 2016-09-23 16:52:29 · 13105 阅读 · 0 评论 -
getJSONObject与optJSONObject的区别,结合源码分析
json解析常见问题:getJSONObject与optJSONObject的区别,下面结合源码和案例来分析当我们使用这两周方法来解析数据时,哪种比较好.源码分析://使用getJSONObject时,如果返回的对象不是JSONObject,抛出JSONException异常 /** * Returns the value mapped by {@code name} if it原创 2015-12-18 13:10:58 · 21057 阅读 · 0 评论 -
完美滑动顶部固定ScrollView,合并可以上拉,下拉加载更多
先看效果: 主要处理: 使用PullToRefreshScrollView修改内部的scrollView源码,更换成可以固定顶部的自定义scrollView@Override protected ScrollView createRefreshableView(Context context, AttributeSet attrs) { ScrollView scroll原创 2016-02-03 11:38:14 · 2986 阅读 · 4 评论 -
android studio2.0出现的gradle问题,instant Run即时运行不了.
android studio 2.0出现的gradle问题,instant Run即时运行不了. 经历了几乎9个preView版本的AS2.0,终于迎来了正式版,然而晴天我的霹雳,好不容易装好的2.0正式版却用不了,那个牛哄哄的功能,主要问题看下面.错误信息: incompatible 问题1.This version of Android Studio is incompatible wit原创 2016-04-15 12:16:26 · 13142 阅读 · 2 评论 -
自定义gradle的property
在android studio上运行项目,gradle的配置是必不可少的,但是随着项目的逐渐成长,迎面而来的就是.各种依赖包的添加,数不胜数的签名,渠道包等,整个gradle变得很乱,这样其实我们可以将gradle的部分内容分离出来放在另一个自定义gradle内. 如这时我们添加的Plugin 就只要对其赋值就可以了.步骤:在总项目根目录下创建 dependencies.gradle文件(名字原创 2016-04-14 16:25:56 · 2168 阅读 · 0 评论 -
android 数据重构(仿淘宝浏览记录,足迹)
数据结构 ->数据重构需求: 浏览时间分类浏览过的商品(与淘宝足迹一样) 问题: 服务器数据: 1对1, 时间+item商品 现在需求将数据分类成 : 1对多 时间+list商品分析: 可以试用两种方法1.使用一个item在item头隐藏显示时间, 2.使用两个item 分类显示时间 ps:由于listview涉及到了item的删除 因此第一种方式不可使用,那么如果使用两个原创 2015-12-09 18:55:45 · 4104 阅读 · 1 评论 -
一个优化极点的ViewHolder
代码中有注释:使用方法:1.可以在listview,gridview,stageView直接继承LazyAdapter使用ViewHolder代码:import android.content.Context;import android.util.SparseArray;import android.view.LayoutInflater;import a原创 2016-02-16 16:31:55 · 1713 阅读 · 0 评论 -
NDK工具开发Jni,Android studio jni开发
NDK工具开发JNI 1,创建工程 2,创建native方法//该类的路径在main目录任意包下即可public class JniUtils { public static native String getStringFromC();} 3, 配置ndk的路径,如果没有自行到 http://www.androiddevtools.cn/ 下载,原创 2016-04-18 18:24:25 · 2277 阅读 · 0 评论 -
android studio中使用lambda
环境准备如果还没有安装Java 8,那么你应该先安装才能使用lambda和stream(译者建议在虚拟机中安装,测试使用)。 像NetBeans 和IntelliJ IDEA 一类的工具和IDE就支持Java 8特性,包括lambda表达式,可重复的注解,紧凑的概要文件和其他特性。Android Studio 配置lambda流程 1.在Project的包或者原创 2016-04-20 15:54:14 · 2651 阅读 · 0 评论 -
Android View事件机制一些事
本文主要讲述: 1.自己对View事件机制的一些理解 2.在项目中遇到的一些坑,解决方案 2.收集了一些View的事件机制问题事件的分发原理图:1 * 对于一个root viewgroup来说,如果接受了一个点击事件,那么首先会调用他的dispatchTouchEvent方法。2 * 如果这个viewgroup的onInterceptTouchEvent 返回true,那就代表要拦截这个事件。原创 2016-04-12 17:05:59 · 1516 阅读 · 0 评论 -
状态模式(State)-七十二变
状态模式(State)-俺老孙来也俺老孙来也…我是如来佛祖玉皇大帝观音菩萨指定取西经特派使者花果山水帘洞美猴王齐天大圣孙悟空啊!老孙的必杀技就是七十二变,没错比老外的变相怪杰还有牛逼许多.关于老孙我以前的光辉史,长得帅的都知道,什么长生不老之术,上天下地…憋提了,憋提了那都是过去,到了21世纪,老孙已经不叫什么齐天大圣了,只是小公司里的一只程序猿,有事没事敲敲代码压压惊.好了不扯,咱们进入主题…[斜原创 2017-03-11 17:50:38 · 1179 阅读 · 2 评论