- 博客(45)
- 资源 (5)
- 收藏
- 关注
原创 Android 7.0 更新APK在安装时的报错 android.os.FileUriExposedException(已修复)
1.在网上我们能看到类似很多问题多数都存在很多相似问题,很多细节没有讲清楚如果出现了FIleUriExposedException异常大家可以去https://developer.android.google.cn/about/versions/nougat/android-7.0-changes.html (android行为变更)具体了解一下这个问题是由于 Andr
2017-09-29 16:41:21
806
转载 setContentView与LayoutInflater加载解析机制原理
1 背景还记得前面两篇从Android的基础最小元素控件(View)到ViewGroup控件的触摸屏事件分发机制分析吗?你可能看完会有疑惑,View的事件是ViewGroup派发的,那ViewGroup的事件呢?他包含在Activity上,是不是Activity也有类似的事件派发方法呢?带着这些疑惑咱们继续实例验证加源码分析吧。PS:阅读本篇前建议先查看前一篇《Android触摸屏
2017-03-10 22:08:16
525
转载 Java,Android 实现AOP
介绍众所周知,AOP(面向切面编程)是Spring框架的特色功能之一。通过设置横切关注点(cross cutting concerns),AOP提供了极高的扩展性。那AOP在Spring中是怎样运作的呢?当你只能使用core java,却需要AOP技术时,这个问题的解答变得极为关键。不仅如此,在高级技术岗位的面试中,此类问题也常作为考题出现。这不,我的朋友最近参加了一个面试,就
2017-03-09 14:19:47
728
转载 JVM并发编程模型总结
我们知道程序分为同步风格和异步风格。可以写成同步风格用多个线程来并发执行。也可以写成异步风格以支持更为灵活的调度。异步更适合并发编程。为什么要异步异步的目的:充分利用计算资源。同步使线程阻塞,导致等待。异步是非阻塞的,无需等待。如果发生了不必要的等待,就会浪费资源,使
2017-03-09 14:15:43
757
转载 Android RecyclerView 使用完全解析
Android RecyclerView 使用完全解析 体验艺术般的控件标签: Recyclerviewpager瀑布流2015-04-16 09:07 547643人阅读 评论(391) 收藏 举报 分类:【Android 5.x】(10) 版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]
2017-03-09 14:12:42
354
转载 Android内存溢出(oom)总结
避免内存溢出的方法,主要是对以下三个方面对程序进行优化内存引用在处理内存引用之前,我们先来复习下什么是强引用、软引用、弱引用、虚引用强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。
2017-03-09 10:06:02
364
转载 Android RecyclerView更新与工作原理分析
基本使用 RecyclerView的基本使用并不复杂,只需要提供一个RecyclerView.Apdater的实现用于处理数据集与ItemView的绑定关系,和一个RecyclerView.LayoutManager的实现用于 测量并布局 ItemView。绘制流程 众所周知,Android控件的绘制可以分为3个步骤:measure、layout、draw。Recycl
2017-03-09 09:27:54
3160
转载 Android 中的代码混淆
本文为本人的一些实践总结,介绍一些混淆的知识和注意事项。希望可以帮助大家更好的学习和使用代码混淆。什么是混淆关于混淆维基百科上该词条的解释为代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆影响到的元素有类名变量名方法名
2017-03-09 09:09:32
446
转载 Android 自定义View原理
如果你打算完全定制一个View,那么你需要实现View类(所有的Android View都实现于这个类),并且实现确定尺寸的onMeasure(…))方法和确认绘图的onDraw(…))方法。自定义View一共分为6步第一步public class SmileyView extends View { private Paint mCirclePaint; pri
2017-03-09 09:07:15
381
转载 Java多线程同步的五种方法
一、引言前几天面试,被大师虐残了,好多基础知识必须得重新拿起来啊。闲话不多说,进入正题。二、为什么要线程同步因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。举个例子,如果一个银行账户同时被两个线程操作,一个取100块,一个存钱100块。假设账户原本有0块,如果取钱
2017-03-09 09:05:24
393
转载 Style在Android中的继承关系
Android的 Styles(样式)和Themes(主题) 非常类似Web开发里的CSS,方便开发者将页面内容和布局呈现分开。Style和Theme在Android里的定义方式是完全一样的,两者只是概念上的区别:Style作用在单个视图或控件上,而Theme用于 Activity 或整个应用程序。由于作用范围的不同,Theme也就需要比Style包含更多的定义属性值的项目(item)。不过本文,
2017-03-09 09:00:02
473
转载 Android Studio 2.3 正式版发布
Android Studio Android 开发环境Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试Android Studio 2.3 在 Canary 通道 发布了,这是进入下一个 Android Stud
2017-03-09 08:57:13
1349
转载 Android又一重磅利器—Lottie安卓开源动画库介绍和使用
吊炸天!74款APP完整源码! MVP+Dagger2+Rxjava+Retrofit+GreenDao 小应用,包含新闻、图片、视频3个大模块,代码整洁干练 [干货]2017已来,最全面试总结——这些Android面试题你一定需要碉堡的LottieAirbnb最近开源了一个名叫Lottie的动画库,它能够同时支持iOS,Android与ReactNative的开发.此消息一出,还在苦于探索自定
2017-03-09 08:48:52
2675
转载 自学编程又无从下手建议
最近总有一些小伙伴问我,现在大二,想自学编程,但是不知道如何下手?不知道该学哪一门编程语言,c/c++?java?c#?还是php?不知道c++、Java、php之间有什么区别?是不是学习java之前要学c?学习了Java基础之后又该学什么?如果你也有这些疑问,那就继续看下去,如果没有就可以return了。
2017-03-09 07:57:53
1205
原创 深度了解Android 7.0
ClassLoader就是类加载器,除了能将class加载到JVM中之外,还有一个重要的作用就是审查每个类应该由谁家在,他是一种父优先的等级加载机制,为何是这种加载机制我们将后面分析。Class除了上诉两个作用还有一个作用就是将Class字节码重新解析成JVM统一要求的对象格式。ClassLoader类结构分析 我用用到和扩张ClassLoader方法如下:
2017-03-08 22:37:57
898
转载 Java:深入分析volatile的实现原理
通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和
2017-03-08 21:32:03
434
转载 程序员有哪些发展方向
绝大多数程序员最终的职业目标可能都是CTO,做到CEO的人估计会比较少,也有一少部分人自己去创业去当老板,也有部分人转行了,当老板的牛人也有。一般来说,程序员的发展基本上都会经历这么几条路径。程序员-系统分析员-架构师-技术经理-CTO,程序员-项目组长-项目经理-项目总监-CTO,程序员-产品设计师-产品经理-CTO。当然这只是一个大致的路径,不是所有程序员都必需要这么经历的,有些人可能
2017-03-08 21:27:16
1179
转载 程序员讨厌项目经理的10点
程序员不爽项目经理的10点项目经理和程序员实在是一对冤家,有私交很好的项目经理和程序员,但是没有在工作中不起争执的项目经理和程序员。那么项目经理为什么和程序员会“干架”呢?项目经理究竟有哪些行为让程序员感到不爽?下面让小编为你八一八:第10名:提出不合理需求程序员很怕项目经理提出不合理的需求。不得不说大部分
2017-03-08 21:24:07
1402
转载 Android仿今日头条开源项目
起因看到众多大神纷纷有了自己的开源项目,于是自己琢磨着也想做一个开源项目来学习下,因为每次无聊必刷的app就是今日头条,评论简直比内容都精彩,所以我打算仿今日头条来练练手,期间也曾放弃过,也遇到很多坑,拿出来跟大家分享一下。该项目使用的是MVP+RxJava+Retrofit。喜欢的记得给个Star,当作是给我的鼓励和动力吧。成果图
2017-03-08 21:20:15
4633
转载 Android项目框架
时间从来没有等过我们,岁月这把捅猪刀.捅得你满脸都是沧桑.你一定是为工作操碎了心.不知道现在的身处何处,是否有挚爱的人照顾你.过得快乐或委屈?哦忘了.你是个有故事的人,"你想ta过得比你要好,希望你永远不都会知道".骚年莫慌,老夫带你撸个框架,进可重振雄风,退可养精蓄锐!本篇适合什么样的人群看?
2017-03-08 21:16:45
1493
转载 android直接拿来用的开源项目
前言练习MVP架构开发的App,算是对自己学过的知识做一个总结,做了有一段时间,界面还算挺多的,代码量还是有的,里面做了大量封装,整体代码整理得很干净,这个我已经尽力整理了。不管是文件(Java、xml、资源文件)命名,还是布局设计尽量简单简洁。代码不会写的很复杂,整个代码结构有很高的统一度,结构也比较简单清晰,方便理解。里面做了大量的封装,包括基类的构建和工具类的封装,再配合
2017-03-08 21:13:12
1755
原创 IOS 面试个人简历(模板)
应聘岗位:IOS 软件工程师 基本信息: 姓 名三生三世十里桃花电 话11111111民 族汉身 高180性 别男年 龄22学 历大专体 重80 求职意
2017-03-08 21:09:21
12012
转载 Android Studio模板之文件组
文件组模板是基于FreeMarker模板语言的一个功能很强大的Android开发模板,可以这样说,代码片段模板和文件模板是一种提高编码效率的工具,而文件组模板可以算是一种模板引擎。效果图展示已有工程中使用模板效果图创建工程时使用模板示例场景
2017-03-08 21:04:16
1032
转载 Android Studio 2.3正式版发布;Android8.0或命名为奥利奥
Android Studio 2.3正式版发布 包含一些新特性Android Studio 2.3正式版发布了,该版本包含一些新特性,包括对WebP支持的更新;ConstraintLayout库支持更新和布局编辑器的部件面板。提供一个新的App Link助手可以帮助你在应用中构建URI的统一视图。新的运行按钮提供更直观和可靠的立即运行体验
2017-03-08 21:00:48
1051
转载 Android中数据序列化之Serializable与Parcelable
1.Serializable序列化Serializable是Java语言的特性之一,是将java对象转换成字节序列的过程,与之对应的是反序列化。反序列化是将字节序列转化为java对象的过程。 Serializable通过实现接口进行标志,只要定义的Java对象实现了Serializable接口,不有实现任何方法,java就会对该对象诸如对如下类进行序列化及反序列化操作public cl
2017-03-08 20:57:36
387
转载 Android 为应用添加角标(Badge)
角标是什么意思呢?看下图即可明了:可以看到图中的乐购这个app右上角的红色的圆圈,里面有10这个数字的,就是一种角标。角标,英语是badge,也就是“徽章,像章,奖章; 象征,标记”的意思。一般来说,应用的角标是用来标记有多少条提醒(Notification)没读(unread),一旦点击提示进应用阅读了,角标也会消失。Android角标起源
2017-03-08 20:53:15
3542
转载 三年无bug,提升代码质量的秘诀
对我代码质量影响最大的是在一家外资企业,在这家公司我觉得有以下几个方面做的很不错。团队编码风格统一统一到什么程度? 不看代码作者,你很难区分代码是谁写的(在目前公司一些团队也能达到这个标准)。个人观点:这样做有什么好处?团队中每个人阅读代码都很容易,减少很多沟通,维护成本( 代码阅读的次数远远大于变更的次数),并且心情非常愉悦。有人肯定觉得愉悦有点夸张,举个栗子:
2017-03-08 20:47:27
378
转载 20个很棒的Android开源项目帮助你提升开发技能
对程序员来说,最好的学习也是阅读,多看别人优秀的代码,加以总结学习应用。如果你想成为一个更好的开发者,就必须阅读大量的代码。书本,博客,论坛在一定程度上都是比较好的,但是比不上一些功能完整详细的开源项目。所以你要做的就是喝着咖啡看代码。O(∩_∩)O哈哈~下面列出来一些比较好的开源项目,每个项目都标注有难易程度。希望可以帮到你~LeafPic(Github|
2017-03-08 20:44:22
452
转载 Android freemarker模板引擎应用
什么是freemarker?在说这个之前我们都知道web和原生控件之争就那么点事。性能,加载速度,流量,数据交互….如果我用webView加载一个url页面,要先通过网络解析css,解析html代码,然后渲染生成页面什么是freemarker?简单点就是,事先把上面这个html文件,放到应用中,用的时候只要传入数据就行freemarker优点和应用
2017-03-08 20:39:43
2595
原创 android最新面试(非技术性问题)
Android 关于android非技术问题1.1. 为什么看好android1android的开发商google公司实力2google公司研发android的最终目的3目前移动市场的格局4Android的支持者5Android和其他移动操作系统的技术分析Q2以前是否从事android的工作,做过哪些工作 这个问题主要考察应聘者是否有工作经验(从非技术角度
2016-03-29 19:08:20
1533
原创 java工程师最新面试题(输入输出部分)
Q28关于system.out说法那个正确请选择正确的答案A system.out是一个printStreamB system.out是一个outputstreamCsystem.out是一个FilterOutputStreamDsystem.out是一个printStreamEsystem.out在异常时,会抛出IOException 流io的好处是简单易懂,缺点
2016-03-27 22:22:02
2515
原创 java工程师最新面试题(集合,string,object)
Java基础类的集中在以下的包中 lang包 util包 io包掌握基础lang包掌握常用的math类和object类掌握string类,以及其他与StringBuffer类的区别掌握util包的基本类重点理解java对几何的处理掌握java集合核心接口区别hashcode和equals的区别掌握常见的io类熟练掌握文件输入输出Q object类中hasco
2016-03-27 22:19:17
839
转载 Android性能优化之Bitmap的内存优化
1、BitmapFactory解析Bitmap的原理BitmapFactory提供的解析Bitmap的静态工厂方法有以下五种:12345Bitmap decodeFile(...)Bitmap decodeResource(...)Bitmap decodeByteArray(...)Bitmap decodeStream(...)Bitmap decodeFileDe
2016-03-27 21:56:33
899
转载 MVP模式在Android开发中的最佳实践
回想一下,你刚刚学习Android的时候,总会看到一些书上写着,Android使用的是MVC模式,Activity就是一个Controller,或许那个时候,你没有什么深刻的体会。随着经验的积累。你发现,Activity既是Controller,掌管着许许多多的业务逻辑,同时它也作为View的一部分,控制着视图层的显示。久而久之,这个Controller便显得过于重,职责不再那么单一。
2016-03-27 21:12:05
642
翻译 从“埋点技术已死?”开始说起
大数据时代的到来意味着数据量的爆炸,也意味着收集数据的难度将大幅增加。为了将海量的数据收集起来,埋点技术应运而生。然而随着大数据的发展和深入,用户的要求越来越高,埋点技术开始变得力不从心。近期,一些公司开始以“无埋点技术”为卖点,开始到处宣传无埋点比埋点好,那么到底事实如何了?埋点技术的时代埋点技术通过在代码的关键部位植入统计代码,追踪用户的点击行为;或者植入多
2016-03-27 21:04:12
3820
原创 java工程师最新面试题(线程部分)
一般来说,把正在计算机中执行的程序叫做“进程”,所谓的“线程”是指“进程”中某个单一顺序的控制流。要求读者掌握1掌握java多线程机制2.直到进程和线程的区别3.掌握进程的几种状态4.掌握使用两种方式创建进程5.掌握线程的同步6掌握线程不同状态之间的转化 Q 请说明进程好线程的区别值得注意的是进程是属操作系统的a一个程序至少有一个进程,一个进程至少有一个
2016-03-26 15:34:37
1948
原创 Git软件安装
双击运行Git-1.7.9-preview20120201.exe程序, 如下图 点击Next, 下一步 点击Next, 下一步 选择安装路径后, 点击Next, 下一步 使用默认的组件, 点击Next, 下一步 创建开始菜单文件夹, 点击Next, 下一步 选择使用Git的命
2016-03-25 03:53:02
397
原创 Copss安装过程
双击Copssh_4.1.0_Installer.exe Next 下一步 点击 I Agree , 下一步 Next, 下一步 设置一个服务的帐号, 点击Install, 开始安装 安装过程中弹出一个对话框, 提示默认情况下没有用户, 需要进入COPSSH Control Panel控制面板去设
2016-03-25 03:48:14
665
原创 android面试(个人)简历
个人简历基本信息 姓 名 : *** 性 别 : 男籍 贯 : 湖南 岳阳 年 龄 : 25学 校 : 天津科技大学 学 历 : 在读硕士
2016-03-21 14:34:16
35970
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人