![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
天外来客1009
永远不要低估一颗冠军的心,一颗永不服输的心!低调做人、认真做事!努力工作、好好生活、细心照顾身边的人!
展开
-
Android的ClassLoader知多少
loadClass基本流程/** * Loads the class with the specified <a href="#name">binary name</a>. The */protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundExcep...原创 2019-05-08 14:53:23 · 235 阅读 · 0 评论 -
Android相关技术博客汇总
下面是Android国内、国外相关技术博客汇总,欢迎大家补充此页面内容Github地址,fork一下,保存方便国内部分Android开发者博客(备注:按A-Z排序) 昵称 GitHub 博客 介绍 androiddevtools androiddevtools Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载原创 2016-11-28 18:02:16 · 1504 阅读 · 0 评论 -
Android实现自定义PasswordInputView密码输入
欢迎来到“实现自定义密码输入控件”这一章节。先上图 PasswordInputView是做什么的?PasswordInputView是一个自定义密码输入的控件,类似支付宝、微信支付的密码输入,同时定义了密码输入的监听实现原理1.创建一个类 ‘PasswordInputView’ ,让其继承EditText,因为我们要实现的自定义view是用来密码输入的,所以必须继承EditText原创 2016-11-29 18:08:42 · 6656 阅读 · 2 评论 -
利用AccessibilityService实现“微信红包”插件
利用AccessibilityService实现“微信红包”插件。AccessibilityService是android的一个辅助服务抽象类,它是继承Service类,可以用于监听通知栏的变化、窗体改变、窗体内容改变、EditText光标移动、TextView内容改变等事件。原创 2016-11-10 11:04:44 · 4272 阅读 · 0 评论 -
Android ListView实现某些item被盖上一层蒙版的效果
最近做项目,产品和UI出的一个效果图是这样的:有一个产品列表,可以购买的正常显示,已售罄的产品item被灰掉(即:看起来像是被盖上一层半透明的蒙版)。其实要实现这个效果,想一想也不难。基本思路:1、ListView的每个item是一个单独的布局,给这个布局设置前景色来实现。一般都是用LinearLayout、RelativeLayout实现,那么这两种布局有设置背景色(backgr原创 2016-08-15 15:02:48 · 4027 阅读 · 1 评论 -
Android实现“判断域名是否有效”的功能
近期在做公司某一个app项目时,有这样的一个需求:公司app接口有部署在不同ip的服务器,通常我们app是直接请求带公司域名的接口服务器,但有可能遇到公司域名被DSN劫持的情况,这时就需要app转为请求另一个ip的接口服务器。 这种情况就需要实现“判断域名是否有效”的功能。主要有两种方法:第一种、通过ping命令来判断域名是否可ping通。主要实现代码如下:Proc原创 2016-06-29 08:46:02 · 8784 阅读 · 0 评论 -
Eclipse 如何导入Android系统源码
对于想看Android系统源码的人来说,可以说有很多编辑工具都可以查看,比如,我看到身边有同事用sourceInsight软件,但我们平时开发Android app一般都是用Eclipse、Android Studio来开发,要查看源码,还要另外下载sourceInsight,如何用已有的Eclipse查看Android系统源码呢?仅以此来记录一下。主要分为以下几步:1、将Android系原创 2016-07-05 15:03:23 · 4626 阅读 · 0 评论 -
Android监控内存泄露利器-使用Leak Canary
Android监控内存泄露利器---Leak Canary,先看一下,在Android Studio如何集成?很简单,两步。1、在build.gradle中添加两行代码。dependencies { //leakcanay检测内存泄露 start debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3原创 2016-07-07 16:56:10 · 1001 阅读 · 0 评论 -
Android Studio常用插件整理
现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行)。使用好Android Studio插件能大量的减少我们的工作量。1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:快捷键Alt+S也可以使用Alt+I转载 2016-07-07 17:17:21 · 837 阅读 · 0 评论 -
Android 使用TBS提高WebView的兼容性和性能
因Android各大厂商都有自己定制的ROM,导致app端开发时,WebView的兼容性和性能是一个让很多人头疼的问题。不过,目前可以使用TBS(腾讯浏览服务)SDK,此SDK已经在WebView的兼容性、性能上作了很大提升。首先,介绍一下TBS的优势。1)速度快:相比系统WebView的网页加载速度有近30%的提升;2)省流量:云端优化技术使流量节省20%;3)更安全:24小时安原创 2016-07-11 15:05:34 · 10381 阅读 · 4 评论 -
Android:一个TextView分段改变样式、添加监听事件的实现方式(类似朋友圈评论)
TextParser 实现类似“朋友圈、QQ空间说说”评论的功能原创 2016-06-24 14:27:01 · 854 阅读 · 0 评论 -
Android Json基础知识
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.orgJSON Vs XML 对比1.JSON和XML的数据可读性基本相同2.JSON和XML同样原创 2016-06-24 14:24:47 · 310 阅读 · 0 评论 -
Android app1打开app2的实现
场景:在app1的MainActivity界面,点击一个button,打开app2的DemoActivity界面,如何实现?解决方案的步骤:1、在app1的mainfest.xml文件中,在MainActivity的声明中,加上如下代码: …… …… …… …… …… …… 2、在MainActivity界面的button点击事件中,加上如下代码:Intent it = n原创 2016-06-24 14:26:58 · 391 阅读 · 0 评论 -
Android5.0报错:java.lang.IllegalArgumentException: Service Intent must be explicit
Android5.0报错:java.lang.IllegalArgumentException: Service Intent must be explicit。主要是因为Android5.0不支持隐式in Android5.0报错:java.lang.IllegalArgumentException tent,必须是显示intent。原创 2016-06-24 14:26:56 · 506 阅读 · 0 评论 -
Android动画效果translate、scale、alpha、rotate详解
[转自:http://blog.csdn.net/sun6255028/article/details/6735025]动画类型Android的animation由四种类型组成XML中alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果JavaCode中AlphaAnimation渐变透明度动画效果ScaleAnima原创 2016-06-24 14:26:50 · 430 阅读 · 0 评论 -
Android截图如何生成gif动态图
我们在博客里面经常看到有人上传的截图是动态的,即gif格式,那么截图怎么生成gif格式的图片呢?原创 2016-11-21 11:20:28 · 2877 阅读 · 0 评论 -
Android自定义吐司Toast:自定义样式、自定义显示时长
Android自定义吐司Toast:自定义样式、自定义显示时长鉴于系统toast,一般都是黑色背景且位于界面底部,我们看到有些app弹出的toast,有的在界面中间、有的在界面顶部,还有的是带图片的,那是怎么实现的呢?了解系统toast类有哪些方法setView( ):设置toast视图,也就是通过layout布局来控制toast显示不同的视图。 setGravity( ):设置toast显示位原创 2016-11-21 18:40:34 · 14698 阅读 · 2 评论 -
Android中的Binder机制,一看就明了
Binder的作用Binder主要用于进程间的通信(IPC)。Binder的架构Binder采用的是C/S架构(Client/Server架构)。发送消息的是Client,接收消息的Server。Binder机制Client和Server分别属于不同的进程,二者需要ServiceManager来配合完成通信。Server向ServiceManager注册服务,注册过程是在Binder...原创 2019-05-08 14:40:11 · 293 阅读 · 0 评论 -
Android App性能优化,你知道如何做吗
一.何为App的性能拿小车举例,大家知道什么是一辆小车的性能吗?同学甲说,是否省油、加速是否够快、开起来是否稳定、安全等等。没错,那就是小车的性能。那App的性能又是指什么呢?同学已说,App启动是否够快,运行是否流畅,是否省电、省流量,安装包体积是否够小等等。是的,这就是App的性能。二.关注App性能,有什么用我们知道,一辆小车性能越好,加速越快,跑的越稳,越省油。App也一样,...原创 2019-04-28 19:06:17 · 332 阅读 · 0 评论 -
Android N调用系统安装APK方法报错原因整理及解决方案
最近在做App的改版(由系统App改为普通App)过程中,经原来的静默安装方式改为调用系统普通安装APK的方式时,报错了,堆栈信息如下:fatal errorjava.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/com.x...原创 2019-04-08 09:46:58 · 1638 阅读 · 0 评论 -
Activity启动流程简明总结
App安装后,在桌面(Launcher)会出现App的图标,用户点击App图标后,App的第一个Activity是如何启动起来的呢。简明总结如下:Launcher 点击App图标,Activity启动流程:①Launcher响应用户点击,通知AMS(ActivityManagerService)需要启动Activity【Launcher通过ActivitiyManagerProxy与AMS通...原创 2019-03-20 18:57:06 · 233 阅读 · 0 评论 -
Android如何实现获取手机CPU的温度?
Android如何实现获取手机CPU的温度?在做项目过程中,有时需要获取手机CPU的温度。目前市面上常见的CPU主要有两种:MTK(联发科)、Qualcomm(高通)。当然还有我们华为的海思麒麟CPU,以及三星的CPU。后两种CPU在本篇文章中就不做展开,有兴趣的同学,可以自行去研究研究。通过研究发现,CPU的信息基本都是在/sys/class/thermal/目录下,通过adb shell...原创 2019-02-15 17:15:44 · 8051 阅读 · 3 评论 -
Android常用优秀开源框架强烈推荐
Android常用优秀开源框架1.网络请求框架okhttpOkGo2.图片下载框架glidepicasso 加载一般图片 加载gif 图片质量细节 方法数 缓存 glide OK OK且显示动图 有锯齿 2678 根据ImageView尺寸,为不同尺寸缓存图片 picasso OK OK,...原创 2018-09-20 15:53:33 · 2759 阅读 · 2 评论 -
APK下载完成后,点击提示无法打开,如何解决
APK下载完成后,点击提示无法打开,如何解决近期在做一个项目时,实现了扫码下载的功能,其基本流程如下:集成了zxing的扫描库,当识别了二维码后,跳转到一个WebView页面。 设置此WebView的的下载监听器,如下:// 设置WebView下载监听器 wvDetail.setDownloadListener(new DownloadListener() { ...原创 2018-08-15 19:35:23 · 23038 阅读 · 1 评论 -
Android App不被手动强制停止和卸载的实现
最近在做项目时,遇到一个这样的问题,如何让我们的App在“系统设置”里面,不被手动强制停止和卸载?首先,我们分析一下:- 要实现不被手动停止,必须让系统设置的App详情页面的“强制停止”按钮被置灰才能做到。- 要实现不被手动卸载,必须让App 获取系统的设备管理权限。要实现以上两点,我们必须想办法让App在启动时自动获取系统的设备管理权限。接下来,我们通过查阅相关资料,需要按照以下步...原创 2018-08-14 15:52:04 · 9812 阅读 · 10 评论 -
Android程序报“程序包org.apache.http不存在”的原因和解决办法
问题描述最近做Android项目用到网络请求,结果碰到“程序包org.apache.http不存在”的问题,但是以前的项目用同样的网络请求没有问题。 原因在Android Studio开发项目时,Android6.0(API:23)开始不支持HttpClient了。解决办法在app的build.gradle添加如下代码android { useLibrary 'org.apache.htt原创 2017-02-24 16:33:43 · 4658 阅读 · 0 评论 -
Android开源项目如何发布到JCenter上
Android开源项目如何发布到JCenter上?第一步:配置module的build.gradle;第二步:生成需要发布的zip包;第三步:注册binary账号;第四步:创建项目;第五步:上传zip包;第六步:点击“Add to JCenter”,提交审核原创 2017-02-17 18:59:35 · 628 阅读 · 0 评论 -
Android:使用PopupWindow.update( )碰到的坑
背景前期做项目实现了一个自定义键盘的控件,主要是通过extends PopupWindow来实现,后期我会考虑把这个自定义键盘开源,敬请关注。其中用到了PopupWindow.update( )方法,在Android7.0正式发布前,即在Android7.0以下的系统上没有问题,最近Android7.0的手机已经陆续进入市场。就在这几天,有同事反应我们项目里面那个自定义键盘原来在界面底部,是正常,但原创 2017-01-16 20:07:24 · 12022 阅读 · 1 评论 -
Android:同一App不同Activity间跳转踩过的坑
Android:同一个app,不同activity间跳转,从第一个activity正常跳转(startActivity)到第二个activity,第一个activity就被onDestroy了,这是为什么呢?原创 2017-01-10 18:17:54 · 2362 阅读 · 1 评论 -
Android自定义View完美实现指示器位置随进度变化的IndicateProgressView
该文章同步发布在公众号”LinminTech”上,请在本文最后扫码关注,获取更多精彩Android开发文章。在平时开发过程中,UI经常要求实现进度百度分比位置随进度变化的的ProgressBar,但是Android系统自带的ProgressBar并不能满足我们的要求,这就要求我们自定义实现这样的控件。基本原理在网上看到很多类似直接继承系统ProgressBar来实现此控件,但是在实现进度指示器都比较复杂,这里简单实现原创 2016-12-08 20:26:44 · 4211 阅读 · 2 评论 -
Android热修复“AndFix”中文解析(使用说明)
AndFixDownload|0.5.0 build|passing License|Apache2.0 Gitter|join chatAndFix源码下载AndFix的官方解释AndFix是一种“不用重新发布版本,直接在线修复bug”的解决方案。一般以Android Library形式发布。AndFix名字的由来AndFix是“Android hot-fix”(即:Android热修复)的翻译 2016-11-22 20:03:08 · 1298 阅读 · 0 评论 -
Android系统架构
Android系统采用分层的思想,如下图所示,从下层到上层,分别是:Linux内核、系统库和运行时、应用程序框架层、应用层。 一、 Linux内核 Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、原创 2016-06-24 14:26:47 · 1096 阅读 · 0 评论 -
android:layout_gravity和android:gravity的区别
1.首先来看看android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左部。andr原创 2016-06-24 14:26:40 · 261 阅读 · 0 评论 -
Android:解决列表滚动时背景色变黑的方法
设置列表的滑动时的颜色:android:cacheColorHint="#000000",只要不为黑色即可。如下: android:id="@+id/hotAppList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layou原创 2016-06-24 14:25:46 · 641 阅读 · 0 评论 -
android:报Activity has leaked IntentReceiver或者receiver is not registered错误
原因:很可能是直接调用registerReceiver(......)和unregisterReceiver(......),导致这两个方法找不到。解决办法:在registerReceiver(......)和unregisterReceiver(......)直接调用改为:getApplicationContext().registerReceiver(......)和getApplicatio原创 2016-06-24 14:25:43 · 4187 阅读 · 1 评论 -
android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
原因是:使用了requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);android2.3.x版本可以正常使用,android4.0以上版本默认设置了标题,导致两个title冲突。android4.0以上版本解决办法:1、在AndroidMainfest.xml中修改标签中的android:theme="@style/AppTheme"(自定义主题的时候原创 2016-06-24 14:25:41 · 293 阅读 · 0 评论 -
Android:apk签名
一、android apk签名有几种方法?1、利用jdk工具进行apk签名2、利用Eclipse中的ADT对apk进行签名二、每种签名方法具体怎么操作?1、利用jdk工具进行签名:a、运行dos,cd到apk所在的目录,简称apk_dirb、生成签名文件命令如下:apk_dir>keytool -genkey -alias signapk.keystore -keyalg RSA -validit原创 2016-06-24 14:25:38 · 361 阅读 · 0 评论 -
android:app接收adb发送的命令并显示
一、adb使用的命令及说明如下:adb shell am broadcast -a [广播动作名称] --ei [EXTRA_KEY] [EXTRA_INT_VALUE] --es [EXTRA_KEY] [EXTRA_STRING_VALUE] --ez [EXTRA_KEY] [EXTRA_BOOLEAN_VALUE]eg:adb shell am broadcast -a com.原创 2016-06-24 14:25:35 · 2927 阅读 · 0 评论 -
短url的意义和实现(类似微博短url)
本文是在android平台实现的短url随着微博的兴起和流行,短url的使用也非常火。一、主要目的可能有以下几点:1、微博一般长度为140个字,这是从Twitter引进过来,因为人脑处理信息有限,每次最多140个字。如果用原始url,这个url可能会很长,可能会占去一条微博一半的长度,会导致阅读的美观性,还会影响这条微博其他内容的表达。2、短url容易管理、统计。下面先来看看短网址映射算法的理论(原创 2016-06-24 14:25:33 · 846 阅读 · 0 评论 -
Android:判断某一个service是否已经在运行
直接上代码:public boolean isServiceWork(Context mContext, String serviceName) { boolean isWork = false; ActivityManager myAM = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE); Lis原创 2016-06-24 14:25:30 · 822 阅读 · 0 评论