- 博客(34)
- 资源 (5)
- 收藏
- 关注
原创 关于Android的语言适配
1.创建对应文件夹在res目录下创建对应的valus文件夹,例如:values //默认values-zh-rCN //中文简体values-zh-rTW //中文繁体然后在对应的values里面新建对应的string.xml文件就可以了2.Values文件汇总如下:Values文件汇总如下:中文(中国):values-zh-rCN中文(台湾):values-zh-rTW中文(香港):val
2017-09-06 16:58:34 410
原创 java中的IO流
流的分类一、按流的流向来分: 输入流:读取外部的数据输入到程序(读取),由InputStream和Reader作为基类 输出流:将程序的数据写入到外部设备(写入),由OutputStream和Writer作为基类 二、按流的操作数据单元来分: 字符流:操作的数据单元是16为的字符,由Reader和Writer作为基类 字节流:操作的数据
2017-03-17 10:37:33 374
原创 View和SurfaceView实现自定义View
概述android系统提供了View来进行绘图处理,View可以满足大部分的绘图要求,但是在某一些时候就显得有些不足了。因为View是通过刷新来重绘视图,android系统是通过发送VSYNC信号来进行屏幕的绘制,刷新的时间间隔为16ms,如果在16ms内View没有完成重绘刷新的操作,那么用户在视觉上就会有卡顿的现象。打印日志会发现有下面的警告:"skipped 47 frames! The
2017-03-10 09:55:19 865
原创 Bitmap的加载
加载Bitmap一、android的API中提供了四种加载bitmap的方法,分别支持从文件系统、资源、输入流、字节数组加载出一个bitmap对象,例如:BitmapFactory.decodeFile(path, options);//文件路径BitmapFactory.decodeResource(res, id, options);//资源、资源idBitmapFacto
2017-03-09 09:36:16 355
原创 android性能优化
Android自带的检测UI渲染的工具 开发者模式 --- > GPU呈现模式分析 ---> 在屏幕上显示为条形图 尽量所有的条形图都控制在绿线之下(16ms),如果每次渲染的时间都保持在16ms之内,那么我们看见的UI将是非常流畅测。布局优化一、布局层级优化: Google在其API文档中建议View的高度不宜超过10层,所以建议使用
2017-03-07 11:06:42 268
原创 intent传递bitmap失效的问题
概述:虽然 Bitmap implements Parcelable ,支持intent来传递,但是还是不建议这样传。网上有说大于40kB就会失效,但是我测试两张图片,一张是68kb的可以传,一张是152kb的就失效了,报android.os.TransactionTooLargeException异常。这说明intent对传递的数据是有大小限制的。将bitmap转换成byte
2017-03-03 15:41:06 754
原创 android屏幕适配
概述:在做屏幕适配之前先搞清楚的概念:屏幕尺寸屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等屏幕分辨率屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080。屏幕像素密度屏幕像素密度是指每英寸上的
2017-03-02 15:52:16 391
原创 fragment那点事
前言:先来介绍一个专业术语:"内存重启":“术语”,安卓app有一种特殊情况,就是 app运行在后台的时候,系统资源紧张的时候导致把app的资源全部回收(杀死app的进程),这时把app再从后台返回到前台时,app会重启。这种情况下文简称为:“内存重启”。(屏幕旋转等配置变化也会造成当前Activity重启,本质与“内存重启”类似) 在系统要把app回收之前,系统会把Ac
2017-03-02 09:02:44 367
原创 android事件分发
概述:其中Activity和View控件(TextView)拥有分派和处理事件方法,View容器(LinearLayout)具有分派,拦截,处理事件方法。这里也有个比喻:领导都会把任务向下分派,一旦下面的人把事情做不好,就不会再把后续的任务交给下面的人来做了,只能自己亲自做,如果自己也做不了,就只能告诉上级不能完成任务,上级又会重复他的过程。另外,领导都有权利拦截任务,对下级隐瞒该任务,而直接
2017-03-01 09:57:38 260
原创 android异步机制
概述:异步消息处理线程启动后会进入一个无限的循环体之中,每循环一次,从其内部的消息队列中取出一个消息,然后回调相应的消息处理函数,执行完成一个消息后则继续循环。若消息队列为空,线程则会阻塞等待。handler机制一、使用的优点: 结构清晰,功能定义明确 对于多个后台任务时,简单,清晰 使用的缺点:
2017-02-28 11:41:59 402
原创 android倒计时
Hnadler通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,但此时并没有运行,它需要CPU时间片。一旦得到CPU时间片,就会执行run()方法。run()的方法体称为线程体,它包含了要执行的这个线程的内容,run()方法运行结束,此线程也随即终止。经过测试,这种倒计时方式锁屏之后20s左右就会失效(timer不会失效)mHandler
2017-02-27 19:31:23 729
原创 IPC机制
简介 IPC是 Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。 进程和线程是包含与被包含的关系。Android中的多进程模式1. 在Android中创建多进程的方法: ① 通过JNI在native层去fork一个新的进程(不常用) ② 给四大组
2017-02-23 20:08:13 309
原创 集成百度sdk
概述:集成sdk主要还是参照官方的说明文档,这里只记录主要步骤,方便自己记忆一. 开发环境配置: 1. 获取SHA1值(as中的keytool不是内部命令,不知道怎么解决): ① 用cmd打开jdk的bin目录 C:\Program Files\Java\jdk1.8.0_101\bin ② 执行命令 keytools.exe -lis
2017-02-20 09:15:30 686
原创 复习android三大动画
动画分类: 曾被问到Android中有几种动画,这个问题也好难回答。Android3.0之前有2种,3.0后有3种。 FrameAnimation(逐帧动画):将多张图片组合起来进行播放,类似于早期电影的工作原理,很多App的loading是采用这种方式。 如果图片过多过大就会导致OOM TweenAnimatio
2017-02-17 10:56:48 503
原创 复习android四大组件(一)
activity:1. 生命周期: onCreate ---> onStart(可见) ---> onResume(获取焦点) ---> onWindowFocusChanged(焦点改变监听) ---> onPause(遮住) ---> onStop(当前activity进入后台) ---> onDestory(销毁) onRestart(重新进入前台) ---> onS
2017-02-10 10:52:44 401
原创 android图片三级缓存原理
概述:网上加载图片的框架已经有很多,例如:Picasso所能实现的功能,Glide都能做,无非是所需的设置不同。但是Picasso体积比起Glide小太多如果项目中网络请求本身用的就是okhttp或者retrofit(本质还是okhttp),那么建议用Picasso,体积会小很多(Square全家桶的干活)。Glide的好处是大型的图片流,比如gif、Video,如果你们是做美拍、爱拍这种
2017-01-13 10:21:00 622
原创 android静态安全检测_四大组件activity
问题描述:今天项目进行静态安全检测,报了一个"Activity组件暴露风险"的问题,这个问题引起的原因是给其中的一个activity设置了 android:exported="true" ,但是我有多个app,而且之前存在相互调用。分析:我们先来看看 android:exported="false|true" 这个属性: 1. 完全暴露,这就是android:exporte
2016-12-16 15:19:05 520
原创 安卓实现自定义侧滑菜单
/** * Created by on 2016/12/12. * 注意: HorizontalScrollView的内部布局只能是LinearLayout. * 1. onMeasure(): 决定内部view的宽和高,以及自己的宽和高 * 2. onLayout():决定子view放置的位置 * 3. onTouchEv
2016-12-13 17:48:49 341
原创 自定义ListView下拉刷新,上拉加载
/** * Created by on 2016/12/2. * 自定义listview: * 一、下拉刷新: * 1. 添加头部布局,并设置位置隐藏 * 2. 监听滑动事件,判断当前显示在最顶端的item是否是第一个item * 3. 监听onTouch事件,根据下拉的距离来判断下来状态的变化 * 二、加载更
2016-12-08 15:13:34 584
原创 初次接触JS(二)
一、进阶篇主要学什么 在JavaScript入门篇中,我们学习了如何插入JS、输出内容及简单的DOM操作,JavaScript进阶篇让您进一步的了解JS的变量、数组、函数、语法、对象、事件、DOM操作,制作简单的网页动态效果。 二、数组 1. 创建数组: var myarr = new Array(); 2. 给数组赋值:
2016-11-28 16:29:43 287
原创 初次接触JS
一、准备阶段: 1. 为什么JavaScript非常值得我们学习吗? 所有主流浏览器都支持JavaScript。 目前,全世界大部分网页都使用JavaScript。 它可以让网页呈现各种动态效果。 做为一个Web开发师,如果你想提供漂亮的网页、令用户满意的上网体验,JavaScript是必不可少的工具。 2
2016-11-24 16:01:31 599
原创 CSS基础(二)
一、CSS格式化排版 文字排版: body{font-family:"Microsoft Yahei";(字体) font-size:12px;color:#666; font-weight:bold;(粗体) font-style:italic;(斜体) tex
2016-11-22 18:12:51 309
原创 CSS基础(一)
一、 CSS全称为“层叠样式表 (Cascading Style Sheets)”: 它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等。 使用CSS样式的一个好处是通过定义某个样式,可以让不同网页位置的文字有着统一的字体、字号或者颜色等。
2016-11-21 17:49:55 342
原创 初次接触html
一、html介绍: 1. HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等; 2. CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现; 3. JavaScript是用来实现网页上的特效效
2016-11-21 15:17:47 370
原创 安卓设计模式_命令模式
命令模式:把封装带到一个新的境界:把方法调用封装起来。所以调用此方法的对象不需要关心事情是如何进行的,只需要知道如何使用包装形成的方法来完成它就可以了。特点:1. 将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。2. 命令模式也支持可撤销的操作。3. 命令模式可以实现请求调用者和请求接收者之间的解耦。用例:需求:假设现在有一个遥控器,里面
2016-11-18 09:47:32 309
原创 安卓设计模式_单例模式
单例模式:有一些对象我们只希望有一个,例如线程池、缓存、日志对象等。这个时候就可以用到单利模式,单例可以确保一个类只有一个实例,并且提供一个全局访问点。常见的单例:1. 经典的单例:/** * Created on 2016/11/15. * 经典单利模式 */public class Person1 { private static Pers
2016-11-15 16:31:23 282
原创 安卓关于设计模式_工厂模式
工厂模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类将实例化推迟到子类。只需要创建相关或依赖对象的家族,而不需要明确指定具体类。这样,客户程序中关于超类的代码和子类对象创建代码解耦了。设计原则:针对接口编程,而不是针对实现编程(变量不可以持有具体类的引用)。关于Pizza的工厂模式的uml图:用例:需求:假设我们现在
2016-11-10 10:17:39 426
原创 安卓关于设计模式_装饰者模式
装饰者模式:动态的将责任附加到对象上,若要扩充功能,装饰者提供了比继承更具有弹性的代码方案。因为基类加入新的功能时不一定适合所有的子类,这也导致了继承不能解决所有的问题。设计原则: 类应该对扩展开放(能够扩展),对修改关闭(不能修改现有的代码)。特点: 1. 装饰者和被装饰着具有相同的超类; 2. 可以用一个或者多个装饰者包装一个对象; 3. 既然装饰者和被装饰着具有相
2016-11-07 13:59:43 496
原创 安卓关于设计模式_观察者模式
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象状态改变时,它的所有依赖者都会自动收到通知并更新设计原则:为了交互对象之间的松耦合设计而努力(降低了对象之间的互相依赖)1. 当两个对象之间松耦合,它们依然可以交互,但是不清楚彼此间的细节;2. 一对多的关系是如何关联的: 一方面 "一个" 主题拥有状态,并且能够控制这些状态;另一方面,有 "多个" 观察者
2016-11-04 09:22:49 364
原创 安卓关于设计模式_策略模式
策略模式:定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。设计原则:找出应用中可能需要变化之处,把它们独立并"封装"起来,不要和那些不变的代码混在一起,以便以后可以轻易的改动或扩充此内容,而不影响不需要变化的其他部分。这样做的好处是代码变化引起的不经意后果变少,系统变得更有弹性。针对接口编程Animmal dog = new Dog(
2016-11-03 09:45:08 488
原创 关于Android studio混淆
一、概述这几天要打包APK给测试,但是一打包发现APK包有23M,经理那边自然过不了,所以就开始琢磨怎么减小APK的大小。分析原因:1. 由于UI是按照模块给的切图,所以部分模块的切图可能存在重复,不过这种情况不多,所以对apk的大小影响不大。如果想通过减少图片来减小apk的大小,那么建议只做一套切图,单独适应xhdpi的。2. 如果不需要做国际化,建议指定只支持中文的
2016-10-19 16:56:05 505
原创 安卓实现卸载平台附带卸载相关的应用
一、概述最近公司项目为了版本升级方便,对公司的项目做了平台化管理,相应的也添加了新的功能。其中就包括卸载模块,要求卸载平台的时候附带着卸载手机上已经安装的与平台相关的应用。那么要解决这个问题,我们就可能需要先来处理一下几个问题:1. 通过什么样的方式来监听平台被卸载这个事件2. 卸载平台的同时如何去卸载其他相关的应用二、监听卸载事件1. 直接在平台上注册一个广播来监听这
2016-10-17 10:13:52 473
eclipse-jee-mars-2-win32-x86_64火星版本
2017-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人