Android_Application_Develop
文章平均质量分 59
限量发行x
限量发行
展开
-
图片缓存之内存缓存技术LruCache,软引用
每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常,这个问题曾经让我觉得很烦恼,后来终于得到了解决,那么现在就让我和大家一起分享一下吧。这篇博文要讲的图片缓存机制,我接触到的有两钟,一种是软引用,另一种是内存缓存技术。先来看下两者的使用方式,再来作比较。除了加载图片时要用到缓存处理,还有一个比较重要的步骤要做,就是要先压缩图片。1、压缩图片至转载 2016-03-15 20:36:41 · 296 阅读 · 0 评论 -
Android Runnable 运行在那个线程
Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的:Handler mHandler=new Handler();mHandler.post(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub }});官方对这个方法的解释转载 2016-03-15 19:55:21 · 328 阅读 · 0 评论 -
Android 隐藏API
一开始需要说明的是,Google之所以要将一些API隐藏(指加上@hide标记的public类、方法或常量)是有原因的。其中很大的原因就是Android系统本身还在不断的进化发展中。从1.0、1.1到现在即将问世的Android 2.3.4。 这些隐藏的API本身可能是不稳定的,所以,使用隐藏API,意味着程序更差的兼容性。 如果要我给出建议的话,最好还是不要使用隐藏的API原创 2016-03-05 22:18:55 · 660 阅读 · 0 评论 -
Android应对进程被杀死--Activity
通常在一部Android手机里同时运行着多个应用(app),每个app对应一个系统进程,当系统需要更多的资源(如内存)而空闲资源不足时,Android系统就会选择杀掉一些低优先级的进程以便释放所需资源,这也是Android开发与PC桌面开发不同的之处。 Android系统进程优先级的高低通常是这样判断的: 1)如果一个app正在与用户交互,那么它所在的进程具有最高优先级;转载 2016-03-16 20:44:41 · 2197 阅读 · 0 评论 -
Android应对进程被杀死--Service(一)
序言最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作,都要保证service不被kill,这可真是一个难题。参考了现今各种定制版的系统和安全厂商牛虻软件,如何能保证自己的Service不被杀死呢?其实除了常规的手段,我们可以参考一下微信和360,设置-程序-正在运行,可以看到微信是同时开启了两个进程和服务:【有兴趣可转载 2016-03-16 21:34:20 · 17498 阅读 · 0 评论 -
Android应对进程被杀死--Service(二)
Service组件在android开发中经常遇到,其经常作为后台服务,需要始终保持运行,负责处理一些必要(见不得人)的任务。而一些安全软件,如360等,会有结束进程的功能,如果不做Service的保持,就会被其杀掉。在早些时候,我们可以通过以下方法:1.在service中重写onStartCommand方法,这个方法有三个返回值, START_STICKY是service被kill转载 2016-03-17 11:10:58 · 1810 阅读 · 0 评论 -
MVP for Android: 如何组织显示层的内容
MVP(Model View Presenter)模式是从众所周知的MVC(Model View Controller)模式中派生出来的,目前在Android开发中变得越来越重要。越来越多的人在谈论MVP,但实际上可靠的、结构化的资料很少。这就是我写这个博客的原因,通过它鼓励大家讨论,然后把我们学到的MVP知识以最好的方式应用到我们项目中来。什么是MVP?MVP模式允许转载 2016-03-17 15:30:05 · 426 阅读 · 0 评论 -
Android应对进程被杀死--Service(三)
项目测试的时候发现,按home键回到桌面,再用360清理内存,软件被结束,再次进入的时候报错,看了下log,以为是有的地方没有控制好,但是又不知道360结束的是什么(这个现在还没弄明白)。使用小米系统的进程管理优化内存就不报错。后来想到用Service防止软件被kill掉,查了下资料,发现google 管方就有,ForegroundService 前台服务,让服务一直以前台任务的方式运行,转载 2016-03-16 22:03:38 · 1803 阅读 · 0 评论 -
Android应对进程被杀死--Service(四) 通过JNI实现守护进程,使Service服务不被杀死
开发一个需要常住后台的App其实是一件非常头疼的事情,不仅要应对国内各大厂商的ROM,还需要应对各类的安全管家...虽然不断的研究各式各样的方法,但是效果并不好,比如任务管理器把App干掉,服务就起不来了...网上搜寻一番后,主要的方法有以下几种方法,但都是治标不治本:1、提高Service的优先级:这个,也只能说在系统内存不足需要回收资源的时候,优先级较高,不容易被回收,然并卵.转载 2016-03-16 21:54:10 · 8172 阅读 · 1 评论 -
android使用隐藏api的方法(使用被@hide的api)
原文地址:http://blog.sina.com.cn/s/blog_5da93c8f0101e1yj.html前言:一开始需要说明的是,Google之所以要将一些API隐藏(指加上@hide标记的public类、方法或常量)是有原因的。其中很大的原因就是Android系统本身还在不断的进化发展中。从1.0、1.1到现在即将问世的Android 2.3.4。 这些隐藏的API转载 2016-03-05 19:31:39 · 8846 阅读 · 0 评论 -
Android permission之android:protectionLevel
Android对这些权限进行了四类分级,不同级别的权限对应不同的认证方式。 normal:低风险权限,只要申请了就可以使用(在AndroidManifest.xml中添加标 签),安 装时不需要用户确认;dangerous:高风险权限,安装时需要用户的确认才可使用;signature: 只有当申请权限的原创 2016-03-05 19:10:15 · 3648 阅读 · 0 评论 -
使用code.csdn.net管理开源项目
记录下给刚入门git的童鞋,少走点弯路。步骤:1. 安装windows的git.2.到 https://code.csdn.net 创建项目,注意邮箱地址填csdn passport邮箱地址.3.生成rsa pub公钥。-- 参考文章https://code.csdn.net/help/CSDN_Code/code_support原创 2016-03-31 16:12:59 · 1098 阅读 · 0 评论 -
Android LayoutInflater原理分析,带你一步步深入了解View(一)
有段时间没写博客了,感觉都有些生疏了呢。最近繁忙的工作终于告一段落,又有时间写文章了,接下来还会继续坚持每一周篇的节奏。有不少朋友跟我反应,都希望我可以写一篇关于View的文章,讲一讲View的工作原理以及自定义View的方法。没错,承诺过的文章我是一定要兑现的,而且在View这个话题上我还准备多写几篇,尽量能将这个知识点讲得透彻一些。那么今天就从LayoutInflater开始讲起吧。转载 2016-04-01 09:58:54 · 257 阅读 · 0 评论 -
Android视图绘制流程完全解析,带你一步步深入了解View(二)
在上一篇文章中,我带着大家一起剖析了一下LayoutInflater的工作原理,可以算是对View进行深入了解的第一步吧。那么本篇文章中,我们将继续对View进行深入探究,看一看它的绘制流程到底是什么样的。如果你还没有看过我的上一篇文章,可以先去阅读 Android LayoutInflater原理分析,带你一步步深入了解View(一) 。相信每个Android程序员都知转载 2016-04-01 10:24:16 · 499 阅读 · 0 评论 -
Android视图状态及重绘流程分析,带你一步步深入了解View(三)
在前面一篇文章中,我带着大家一起从源码的层面上分析了视图的绘制流程,了解了视图绘制流程中onMeasure、onLayout、onDraw这三个最重要步骤的工作原理,那么今天我们将继续对View进行深入探究,学习一下视图状态以及重绘方面的知识。如果你还没有看过我前面一篇文章,可以先去阅读 Android视图绘制流程完全解析,带你一步步深入了解View(二) 。相信大家在平时使用转载 2016-04-01 10:58:56 · 479 阅读 · 0 评论 -
Android自定义View的实现方法,带你一步步深入了解View(四)
不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下,我们一共学习了LayoutInflater的原理分析、视图的绘制流程、视图的状态及重绘等知识,算是把View中很多重要的知识点都涉及到了。如果你还没有看过我前面的几篇文章,建议先去阅读一下,多了解一些原理方面的东西。之前我有承诺过,会在View这个话题上多写几篇博客,讲一讲View的工作原理,以及自定义转载 2016-04-01 11:10:08 · 489 阅读 · 0 评论 -
Android应对进程被杀死--Service(五)-- 双进程Service常驻后台
最近项目用到Service常驻后台,研究了一下发现手Q和微信都是使用了双进程来保证一键清理后自动复活,copy网上双进程Service的例子,再结合onTrimMemory(),基本实现一键清理后自动复活。使用双进程Service,关键是在AndroidManifest.xml里面定义Service时加入android:process=":service1":[ht转载 2016-03-20 14:24:16 · 2322 阅读 · 1 评论 -
Android 无需root实现apk的静默安装
Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安装apk:[java] view plain copy Intent intent = new Intent(Intent.ACTION_VIEW);转载 2016-03-17 15:21:35 · 11073 阅读 · 4 评论 -
Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些转载 2016-04-01 11:21:13 · 263 阅读 · 0 评论 -
Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些转载 2016-04-01 11:25:34 · 341 阅读 · 0 评论 -
Android之NDK开发
一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C转载 2016-04-01 21:41:54 · 322 阅读 · 0 评论 -
Android 新版NDK环境搭建(免Cygwin)
使用最新ndk,直接抛弃cygwin,以前做Android的项目要用到NDK就必须要下载NDK,下载安装Cygwin(模拟Linux环境用的),下载CDT(Eclipse C/C++开发插件),还要配置编译器,环境变量,特别麻烦,新版就不需要了。 (软件下载百度云链接:http://pan.baidu.com/s/1nt9g7zz 密码:50m4)setp1:将下载下来的“android转载 2016-04-02 15:01:24 · 511 阅读 · 0 评论 -
Eclipse missing C/C++ build and general from project properties
Q: I have eclipse running and am trying to get opencv4android on it (http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html)Instructions say to go to project -> prop转载 2016-04-02 15:04:24 · 1938 阅读 · 0 评论 -
Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
人人客户端有一个特效还是挺吸引人的,在主界面手指向右滑动,就可以将菜单展示出来,而主界面会被隐藏大部分,但是仍有左侧的一小部分同菜单一起展示。据说人人客户端的这个特效是从facebook客户端模仿来的,至于facebook是不是又从其它地方模仿来的就不得而知了。好,今天我们就一起来实现这个效果,总之我第一次看到这个特效是在人人客户端看到的,我也就主观性地认为我是在模仿人人客户端转载 2016-04-07 10:44:49 · 870 阅读 · 0 评论 -
一个Demo学会用Android兼容包新控件
一个Demo学会用Android兼容包新控件前言伟大的Google为Android推出了一系列的兼容包,最新的就是Design Support Library了,这里我们结合v7和v4中的几个控件,来主要学习Design Support Library中的几个新控件!一个Demo学会用它们!效果动图GIF:Design Support Library D转载 2016-03-13 18:33:19 · 2319 阅读 · 0 评论 -
android studio 报Error:failed to find Build Tools revision XXXX
android studio 报Error:failed to find Build Tools revision XXXX原创 2016-03-13 17:46:51 · 983 阅读 · 0 评论 -
2015Android 开发新技术
Android 的发展确实太快了,每年的都有很多新东西出现,想要覆盖所有新东西感觉也不太可能,小编在网上整理了一些主要的 Android 新技术发展,其实了解 Android 的发展趋势,可能对开发者更有帮助。开发工具Android Studio: Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,但是对 Android Studio原创 2016-03-12 21:54:53 · 552 阅读 · 0 评论 -
Android应用开发中如何使用隐藏API
原文地址:http://my.oschina.net/owen123456/blog/500075一开始需要说明的是,Google之所以要将一些API隐藏(指加上@hide 标记的public类、方法或常量)是有原因的。其中很大的原因就是Android系统本身还在不断的进化发展中。从1.0、1.1到现在即将问世的Android 2.3.4。 这些隐藏的API本身可能是不稳定的,所以,使用隐转载 2016-03-07 10:18:44 · 432 阅读 · 0 评论 -
Android Studio如何自动 import
Eclipse自动添加import语句, 使用Ctrl + Shift + o组合, 可以自动查找java的import语句进行添加;Android默认是Alt+Enter单个添加import语句, 可以修改IDE, 使其自动添加, 所使用的java库;位置: Files ->Settings-> IDE Settings-> Editor -> Auto Import原创 2016-04-07 11:36:45 · 5587 阅读 · 0 评论 -
Android ListView工作原理完全解析,带你从源码的角度彻底理解
在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,转载 2016-03-15 13:16:46 · 683 阅读 · 0 评论 -
Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效
之前我向大家介绍了史上最简单的滑动菜单的实现方式,相信大家都还记得。如果忘记了其中的实现原理或者还没看过的朋友,请先去看一遍之前的文章 Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现 ,因为我们今天要实现的滑动菜单框架也是基于同样的原理的。之前的文章中在最后也提到了,如果是你的应用程序中有很多个Activity都需要加入滑动菜单的功能,那么每个Act转载 2016-04-07 19:36:51 · 1281 阅读 · 0 评论 -
Android数据库(1)--getReadableDatabase() 和 getWritableDatabase()
Android使用getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。(getReadableDatabase()方法中会调用getWritableDatabase()方法)getReadableDatabase()并不是以只读方式打开数据库,而是先执行getWritableDatabas原创 2016-03-26 11:11:56 · 770 阅读 · 0 评论 -
Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
如果你是网购达人,你的手机上一定少不了淘宝客户端。关注特效的人一定都会发现,淘宝不管是网站还是手机客户端,主页上都会有一个图片滚动播放器,上面展示一些它推荐的商品。这个几乎可以用淘宝来冠名的功能,看起来还是挺炫的,我们今天就来实现一下。实现原理其实还是之前那篇文章Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现 ,算是以那个原理为基础的另外一个变种。转载 2016-04-07 22:31:09 · 1793 阅读 · 0 评论 -
Android数据存储实现的5大方式
数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是:1 使用SharedPreferences存储数据2 文件存储数据3 SQLite数据库存储数据4 使用ContentProvider存储数据5 网络存储数据下面将为大家一一详细介绍。第一种: 使用SharedPreferences存转载 2016-03-28 09:50:43 · 423 阅读 · 0 评论 -
Android BINDER设计与实现 - 设计篇
关键词Binder Android IPC Linux 内核 驱动摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Bin转载 2016-04-26 11:19:38 · 516 阅读 · 0 评论 -
java集合类深入分析之HashSet, HashMap篇
简介 Map和Set是比较常用的两种数据结构。我们在平常的编程中经常会用到他们。只是他们的内部实现机制到底是怎么样的呢?了解他们的具体实现对于我们如何有效的去使用他们也是很有帮助的。在这一篇文章里,已经对HashMap, HashSet的实现做了一个详细的讨论。这里主要是针对Map, Set这两种类型的数据结构规约和典型的HashMap,HashSet实现做一个讨论。Ma转载 2016-05-10 17:14:55 · 351 阅读 · 0 评论 -
Android drawable微技巧,你所不知道的drawable的那些细节
好像有挺久时间没更新博客了,最近我为了准备下一个系列的博客,也是花了很长的时间研读源码。很遗憾的是,下一个系列的博客我可能还要再过一段时间才能写出来,那么为了不至于让大家等太久,今天就给大家更新一篇单篇的文章,讲一讲Android drawable方面的微技巧。话说微技巧这个词也是我自己发明的,因为drawable这个东西相信大家天天都在使用,每个人都再熟悉不过了,之所以叫微技巧就是对转载 2016-04-28 21:18:31 · 612 阅读 · 0 评论 -
Android 获取取手机中微信聊天记录
关于如何在 Android 手机上窃取微信聊天记录。这几天事情比较多,可还是想尽快写下这篇文章。本以为微信的聊天记录以我本人现存能力获取不到,但经过一番尝试,还是成功了。前提:手机需要已经 root。在我的直觉里,微信的聊天记录一定会是加密的,而且是用了现代密码学中的加密算法,只要官方保存好密钥那么我等平民不可能获取得到。而接下来,我想说的是我等平民如何能够获取到微信的转载 2016-04-06 11:15:35 · 26130 阅读 · 4 评论 -
Android中activity保存状态和数据到底该在哪个方法中进行
今天接到一个电面,途中面试官问到一个问题,如果一个activity在后台的时候,因为内存不足可能被杀死,在这之前如果想保存其中的状态数据,比如说客户填的一些信息之类的,该在哪个方法中进行。 我听到的第一反应就是说:在onPause方法中进行保存状态的操作。但是面试官说:onPause()的持续时间很短,假如要进行一些长时间的操作呢?转载 2016-05-13 16:59:04 · 4563 阅读 · 0 评论 -
关于 Android 进程保活,你所需要知道的一切
早前,我在知乎上回答了这样一个问题:怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?。关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是极其不靠谱。前段时间,Github还出现了一个很火的“黑科技”进程保活库,声称可以做到进程永生不死。怀着转载 2016-04-19 10:39:01 · 2301 阅读 · 0 评论