自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android中的安全与访问权限控制

Android是一个多进程系统,在这个系统中,应用程序(或者系统的部分)会在自己的进程中运行。系统和应用之间的安全性是通过Linux的facilities(工具,功能)在进程级别来强制实现的,比如会给应用程序分配user ID和Group ID。更细化的安全特性是通过"Permission"机制对特定的进程的特定的操作进行限制,而"per-URI permissions"可以对获取特定数据的acc

2016-04-26 13:39:16 9020 2

转载 史上最牛最全android开发知识汇总

一、开发环境搭建 (已完成)负责人:kris 状态:已完成 所整理标签为:搭建  SDK  JDK  NDK  Eclipse  ADT  模拟器  AVD  调试器(DEBUG)  DDMS  测试 日志  Logcat  ADB复制代码汇总帖子:汇总主帖android开发环境搭建详尽教程实例 :http://www.eoeandroid.co

2016-04-25 19:09:51 1036

转载 Android分包原理

如果App引用的库太多,方法数超过65536后无法编译。这是因为单个dex里面不能有超过65536个方法。为什么有最大的限制呢,因为android会把每一个类的方法id检索起来,存在一个链表结构里面。但是这个链表的长度是用一个short类型来保存的,short占两个字节(保存-2的15次方到2的15次方-1,即-32768~32767),最大保存的数量就是65536。新版本的Android系统中修

2016-04-22 18:42:18 691

原创 Java Thread 总结

这篇文章的主要内容来自于网络,由我来整理,姑且算是原创吧,但是对于内容的提供者,在此表示感谢。1.线程概述线程是一个程序的多个执行路径,执行调度的单元,依托于进程的存在。线不仅可以共享进程的内在,而且还拥有一个属于自己的内存空间,这段内存空间就是线程栈,是在建立线程时系统分配的,主要用来保存线内部所使用的数据,如线程执行函数中所定义的变量,线程的状态等信息。Java中的多线程是一个抢占

2016-04-20 17:16:00 402

转载 Android应用程序插件化研究之dexmaker动态生成Activity

最近在研究Android应用的插件化开发, 插件化都是在解决以下几个问题:如何把插件apk中的代码和资源加载到当前虚拟机。如何把插件apk中的四大组件注册到进程中。如何防止插件apk中的资源和宿主apk中的资源引用冲突。我们已经解决了如何把apk中的代码和资源加载到当前应用的问题,上一篇文章中使用代理的方式实现了插件Activity的注册,demo完成了插件框架的最简单的雏形。但是我们

2016-04-20 09:12:42 1872

转载 关于 Android 进程保活,你所需要知道的一切

编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!早前,我在知乎上回答了这样一个问题:怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?。关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到

2016-04-19 20:04:37 1322

转载 Android应用程序插件化研究之资源冲突

最近在研究Android应用的插件化开发,  插件化都是在解决以下几个问题:如何把插件apk中的代码和资源加载到当前虚拟机。如何把插件apk中的四大组件注册到进程中。如何防止插件apk中的资源和宿主apk中的资源引用冲突。本章我们来研究最后一个问题:资源共享与冲突。在《Android应用程序插件化研究之AssertManager》中,我们实现了加载插件apk中资源问题,实际上我们是单独

2016-04-19 13:53:35 3502 1

转载 Android应用程序插件化研究之Activity注册

最近在研究Android应用的插件化开发,看了好几个相关的开源项目。插件化都是在解决以下几个问题:如何把插件apk中的代码和资源加载到当前虚拟机。如何把插件apk中的四大组件注册到进程中。如何防止插件apk中的资源和宿主apk中的资源引用冲突。在上篇文章中我研究了如何获取并使用插件apk中的资源的问题(文本、图片、布局等),前面两篇文章解决了插件化研究的第一个问题。本篇文章开始研究第二

2016-04-19 13:49:28 766

转载 Android应用程序插件化研究之AssertManager

最近在研究Android应用的插件化开发,看了好几个相关的开源项目。插件化都是在解决以下几个问题:如何把插件apk中的代码和资源加载到当前虚拟机。如何把插件apk中的四大组件注册到进程中。如何防止插件apk中的资源和宿主apk中的资源引用冲突。就这几个问题,我开始研究插件化开发实现的相关技术。在上篇文章中我讲了如何把插件apk中的class加载到当前进程的问题,本篇文章主要讲第一点的第

2016-04-19 13:42:00 885

转载 Android应用程序插件化研究之DexClassLoader

最近在研究Android应用的插件化开发,看了好几个相关的开源项目。插件化都是在解决以下几个问题:如何把插件apk中的代码和资源加载到当前虚拟机。如何把插件apk中的四大组件注册到进程中。如何防止插件apk中的资源和宿主apk中的资源引用冲突。就这几个问题,我开始研究插件化开发实现的相关技术。在上篇文章中我讲了如何把插件apk中的class加载到当前进程的问题,本篇文章主要讲第一点的第

2016-04-18 19:22:39 495

转载 Android 监听apk安装替换卸载广播

首先是要获取应用的安装状态,通过广播的形式以下是和应用程序相关的Broadcast ActionACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程序不能接收到这个广播)ACTION_PACKAGE_REPLACED 一个新版本的应用安装到设备,替换之前已经存在的版本ACTION_PACKAGE_CHANGED 一个已存在的应用程序包

2016-04-18 16:12:12 985

转载 关于HashTable,HashMap和TreeMap的几点心得

刚开始看到HashTable,HashMap和TreeMap的时候比较晕,觉得作用差不多,但是到实际运用的时候又发现有许多差别的。于是自己搜索了一些相关资料来学习,以下就是我的学习沉淀。         Java为数据结构中的映射定义了一个接口java.util.Map,而HashMap、Hashtable和TreeMap就是它的实现类。Map是将键映射到值的对象,一个映射不能包含重复的键;每

2016-04-18 13:18:46 365

转载 ArrayList和LinkedList的区别

一般大家都知道ArrayList和LinkedList的大致区别:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

2016-04-18 13:13:56 316

原创 String、StringBuffer和StringBuilder的区别

String,StringBuffer,StringBuilder这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下:       三者在执行速度方面的比较:StringBuilder > StringBuffer > String  String是“字符串常量”,也就是不可改变的对象  StringBuffer和S

2016-04-18 13:06:26 253

转载 Android Apk打包过程概述:Android是如何打包apk的

最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程。流程概述:1、打包资源文件,生成R.java文件2、处理aidl文件,生成相应java 文件3、编译工程源代码,生成相应class 文件4、转换所有class文件,生成classes.dex文件5、打包生

2016-04-18 09:10:30 544

转载 Android M Launcher3主流程源码浅析

背景关于Launcher是啥的问题我想这里就没必要再强调了。由于一些原因迫使最近开始需要研究一下Launcher3源码,为了不再像以前那么傻逼(研究Settings等代码没作笔记),故这里赶紧将阶段性的感悟整理成文章,方便日后回看。其实本文来源于我在项目组内部的一次分享活动的ppt。在开始学习Launcher3源码之前请务必保证你已经具备如下图所示基础知识技能(相关权重系数已经饼状图标注)

2016-04-15 13:51:40 518

转载 你应该知道的那些Android小经验

原文出处: 冯建 (@冯建V)   做Android久了,就会踩很多坑,被坑的多了就有经验了,闲暇之余整理了部分,现挑选一些重要或者偏门的“小”经验做个记录。查看SQLite日志12adb shell setprop log.tag.SQLiteLog Vadb shell setprop log.tag.SQLiteStatements V

2016-04-15 13:00:37 372

转载 Android 性能典范:拯救计划

文/光源_Android(简书作者)  原文链接:http://www.jianshu.com/p/efcb36b7ce48  英文原文地址:Android Performance Patterns: Rescue tips正文现在的app到处都充斥着华丽的动画、复杂的转化还有自定义View,然而用户体验必须尽可能直观且类似。以下这些范例将会帮助你做出一个流畅的、快速响应的

2016-04-15 12:57:00 349

原创 Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据

点击浏览器中的URL链接,启动特定的App。首先做成HTML的页面,页面内容格式如下:a href="[scheme]://[host]/[path]?[query]">启动应用程序a> 这一句就可以了。 各个项目含义如下所示:scheme:判别启动的App。 ※详细后述host:适当记述path:传值时必须的key     ※没

2016-04-13 15:32:41 9585

转载 Android App整体架构设计的思考

1. 架构设计的目的        对程序进行架构设计的原因,归根到底是为了提高生产力。通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率,并且更容易进行后续的测试以及定位问题。但设计不能违背目的,对于不同量级的工程,具体架构的实现方式必然是不同的,切忌犯为了设计而设计,为了架构而架构的毛病。举个简单

2016-04-12 09:52:27 741

转载 插件化的基石 -- apk动态加载

随着我街业务的蓬勃发展,产品和运营随时上新功能新活动的需求越来越强烈,经常可以听到“有个功能我想周x上,行不行”。行么?当然是不行啦,上新功能得发新版本啊,到时候费时费力打乱开发节奏不说,覆盖率也是个问题。苏格拉底曾经说过:“现在移动端的主要矛盾是产品日益增长的功能需求与平台落后的发布流程之间的矛盾”。当然,作为一个靠谱的程序猿,我们就是为了满足产品的需求而存在的(正义脸)。于是在一个阳光明媚

2016-04-12 09:34:43 642

转载 Android 属性动画(Property Animation) 完全解析 (下)

原文:http://blog.csdn.net/lmj623565791/article/details/38092093上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法:ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~当然了属性动画还有一部分的知识点,

2016-04-11 18:50:05 412

转载 Android 属性动画(Property Animation) 完全解析 (上)

原文:http://blog.csdn.net/lmj623565791/article/details/380674751、概述Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如:

2016-04-11 18:48:20 407

转载 BlockCanary — 轻松找出Android App界面卡顿元凶

BlockCanary是Android平台上的一个轻量的,非侵入式的性能监控组件,应用只需要简单地加几行,提供一些该组件需要的上下文环境就可以在使用应用的时候检测主线程上的各种卡顿问题,并通过组件提供的各种信息分析出原因并进行修复。开源代码:moduth/blockcanary背景在复杂的项目环境中,由于历史代码庞大,业务复杂,包含各种第三方库,偶尔再来个jni调用,所以在出现了卡顿的

2016-04-11 09:19:11 1551

转载 Android App的设计架构:MVC,MVP,MVVM与架构经验谈

转载:https://www.tianmaying.com/tutorial/AndroidMVC和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计:我的App需要应用这些设计架构吗?MVC,MVP等架构讲的是什么?区别是什么?本文就来带你分析一下这几个架构的特性,优缺点,以及App架构设计中应该注...

2016-04-08 09:24:02 1877 1

原创 Android 程序框架设计

1、一些概念模式的定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。什么是设计模式?设计模式是在某种特别的情况下,针对某种问题的某种典型、通用的解决方法。我们是需要适当了解并学习一些设计模式,在程序开发过程中,总是会涉及到一些框架设计

2016-04-08 09:15:59 2416 1

转载 JVM内幕:Java虚拟机详解

这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。线程JVM 系统线程每个线程相关的程序计数器栈本地栈栈限制栈帧局部变量数组操作数栈动态链接线程共享堆内存管理非堆内存即时编译方法区类文件结构类加载器

2016-04-07 09:19:36 372

转载 Android分包MultiDex原理详解

MultiDex的产生背景当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很多。但是在早期的Android系统中,DexOpt有一个问题,DexOpt会把

2016-04-06 16:35:35 1624

原创 Android中一些常用类的常用方法(Math、Random、Color、Paint、Canvas、Bitmap、BitmapFactory)

1.java.lang.Math类常用的常量和方法:Math.PI 记录的圆周率Math.E 记录e的常量Math.abs 求绝对值Math.sin 正弦函数 Math.asin 反正弦函数Math.cos 余弦函数 Math.acos 反余弦函数Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数Math.to

2016-04-06 14:50:58 1386

转载 Android开发之内存管理

学习了下android的SDK里对内存管理部分的描述,结合搜集的一些资料汇分享总如下:在任何软件开发环境中,RAM都是非常宝贵资源。在移动操作系统里,由于物理内存的限制,它会变得更加的宝贵。虽然Android的Dalvik虚拟机会常规的执行垃圾回收,但是开发人员仍然不能忽略什么时候、在哪里申请和释放内存资源。为了能够使垃圾回收器从应用里正常的回收内存资源,开发人员需要避免产生内存泄露,注意在合

2016-04-01 19:11:05 718

转载 Android内存性能优化(内部资料总结)

刚入门的童鞋肯能都会有一个疑问,Java不是有虚拟机了么,内存会自动化管理,我们就不必要手动的释放资源了,反正系统会给我们完成。其实Java中没有指针的概念,但是指针的使用方式依然存在,一味的依赖系统的gc,很容易就造成了内存的浪费。Java基于垃圾回收的内存机制Java的内存管理机制会自动回收无用对象所占用的内存,减轻手工管理内存的负担      1、C/C++: 从申请、使用、

2016-04-01 18:47:06 376

转载 App工程结构搭建:几种常见Android代码架构分析

关于Android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码,优美的分层总是一种舒服的享受的。从艺术的角度看,其实我们是在追求一种美。本文先分析几个当今比较流行的android软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用android工程模板。1. 微盘微盘的架构比较简单,我把最基本,最主干的画了出来:

2016-04-01 18:37:20 455

转载 Android 应用架构概述

通常一个App的成长过程都是这样的:第一阶:先用最少的成本和时间快速把东西做出来。第二阶段:积累一定用户量之后再小步快跑的迭代功能。第三阶段:性能和体验上逐步求精。我发现好多项目在第二阶段和第三阶段耗费了好多本来不应该浪费的人力成本、时间成本。究其原因就是因为前期忽略了合理的架构,我甚至经历过因为前期的设计不合理导致后期技术债务太多项目濒临死掉、整个项目组全员换掉重造锅炉的境地。所

2016-04-01 18:34:03 404

原创 Android APP终极瘦身指南

前言之前写了一篇《APK瘦身实践》侧重于实践和效果对比,后来受徐川老师点拨,建议改写成一篇更全面的瘦身终极杀招大全,深以为然,思考良久,新开一篇。指南条例第1条:使用一套资源这是最基本的一条规则,但非常重要。对于绝大对数APP来说,只需要取一套设计图就足够了。鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录。相对于多套资源,只使用720P的一套资源,在视觉上差

2016-04-01 18:23:27 404

空空如也

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

TA关注的人

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