android基础知识
天才少年_
微信公众号:程序员小安。更多精彩文章定期推送。
展开
-
Android AIDL进程间通信介绍
1. 前言通过给四大组件指定android:process属性,我们则可以轻易的开启多进程模式,但是Android系统中的进程之间不能共享内存,但是很多时候,不同进程之间是要通信的,这个时候就要用到AIDL进程间通信。2.使用步骤(1) 创建.aidl文件,在这里面定义远程接口。在项目名称上右键>New>AIDL>AIDL File,这样就创建了一个ADIL文件,命名为CalculateInterf原创 2016-07-01 11:33:53 · 1201 阅读 · 0 评论 -
Android设置控件的透明度(半透明效果)
1. 前言有些需求会改变布局颜色透明度,比如根据滑动距离,改变title颜色,设置控件如View,Button等的透明度,有3种方法。2.使用方法(1)java代码实现:text = (TextView) findViewById(R.id.text);text.getBackground().setAlpha(12);setAlpha()的括号中可以填0–255之间的数字。数字越大,越不透明。(原创 2016-09-07 11:39:16 · 59016 阅读 · 3 评论 -
Activity四种启动模式(standard,singleTop,singleTask,singleInstance)
Activity一共有以下四种launchMode: 1.standard 2.singleTop 3.singleTask 4.singleInstance启动模式在mainfest.xml里面的activity里面配置,如下图launchMode所示: 一,前提:Android对于Activity的管理方式Android采用Task来管理多个Activity.当启动一个APP时,And原创 2016-05-25 20:39:19 · 1711 阅读 · 0 评论 -
android webview一篇文章全面了解(基本使用,url拦截,js跟java交互)
1.前言最近几年混合应用越来越流行,及一部分功能用原生代码开发,一部分功能用html5实现。那什么时候用原生什么时候用网页呢?很多人第一反应就是经常变化的页面用网页开发,避免经常发包,不全对。其实因为网页使用体验远远不及原生开发,所以一般有以下两种情况建议使用网页代替原生: 1.试水功能 2.类似双11主会场,这类只在固定时间内使用的功能。2.基本使用方法1)xml布局:<?xml versio原创 2016-11-22 19:23:22 · 12457 阅读 · 3 评论 -
Fiddler查看Https网络请求
1. 前言fiddler抓取http网络请求相信大家都会,这边不继续说了,主要讲解如何利用fiddler抓取https的网络请求。2.使用方法正常情况下,手机无线配置完代理,可以抓取http,但是要抓https请求的时候,会发现,全部都是如下的报文。 为了可以跟https一样看到具体请求报文,需要通过如下步骤配置:1)打开fiddler–>tools–>Telerik Fiddler Option原创 2017-07-28 15:37:45 · 8509 阅读 · 1 评论 -
获取手机唯一识别码IMEI
1. 前言获取IMEI相信大家非常熟悉,但是项目中使用时,发现当手机卡为电信的时候,获取的并不是IMEI,而是MEID,什么是MEID,为什么会出现这种情况呢? IMEI国际移动设备识别码(IMEI:International Mobile Equipment Identification Number)是区别移动设备的标志,储存在移动设备中,可用于监控被窃或无效的移动设备。目前GSM和WCDMA原创 2017-07-28 11:45:00 · 35073 阅读 · 3 评论 -
Android HandlerThread使用介绍以及源码解析
1. 前言首先,看一下官方对HandlerThread的解释:Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called.翻译中文为:Handl...原创 2018-05-30 21:10:32 · 3600 阅读 · 0 评论 -
R文件报错的原因
1. 前言一般R文件报错,无非是资源文件错误,图片命名错误,但是编译都会报错,可以很快解决。但是前几天,引入一个第三方aar包后,项目编译正确,但是就是R文件报错,找不到R文件,整个项目一片报红。2.错误方法Clean ProjectRebuild Project我相信很多人,第一反应就是这两个版本,但是都试了一遍后,发现依然报错。我当时把studio关闭重开了几遍,甚至电脑都...原创 2018-10-01 14:58:26 · 11233 阅读 · 1 评论 -
过时api-Android LocalActivityManager的用法
1.前言今天碰到一个问题,我的一个activity需要加载别人的另外一个activity,可能你会说用fragment嘛,但是我们两个属于不同的业务部门,各自平行开发,他不可能单独为了写个fragment,但是我要显示他activity的内容,这时就用到了LocalActivityManager类。2.使用步骤1)在我的activity中初始化一个父容器LinearLayout linear= (L原创 2016-10-26 16:18:22 · 9386 阅读 · 0 评论 -
android studio中如何将一个项目的apk安装包输出到其他工程目录下
1. 前言 上图是淘宝apk解压后(手机淘宝_com.taobao.taobao_144\lib\armeabi)该目录下的文件,之前以为淘宝为了安全 ,原生代码都用c语言去实现,然后编译成so,今天看到公司组件化实现方式才明白,so其实就是一个个apk,淘宝之所以这样搞,是为了实现动态加载,实现主工程动态装载bundle(apk)。简单点说,就是一个主工程,其他各个业务部门,自己新建各自的子工程原创 2016-10-18 19:41:07 · 7698 阅读 · 0 评论 -
Android 利用DDMS观察其他应用布局实现方式
做电商项目的小伙伴,相信很多安卓开发都很讨厌产品经理拿着淘宝或者京东告诉我们,实现跟他们一样的功能就可以了,可能很多人开始抱怨,他们团队多,技术厉害——–不过是实话,工作还是要进行的。下面就教大家,如果出现上面的情况,如何快速模仿出别人的布局。1.在studio里面,选择tools->android->android device monitor,如下所示: 2.选中你连接的电脑的手机,然后选中D原创 2016-05-06 13:44:19 · 7417 阅读 · 0 评论 -
android查看当前手机中的进程
正常情况下,每一个Android应用启动后都会对应一个进程,当前越来越多应用会有多个进程,为了推送,为了内存,或者为了保活。如何查看应用进程呢。1.DOS下面cmd,然后打开adb shell,直接ps命令,显示当前手机所有进程,如图所示: 2.利用(ps|grep 条目名称)命令,过滤自己需要的进程,比如列出条目里含有tencent字符的进程(包名里面含有该字符),则输入ps|grep te原创 2016-05-11 13:08:07 · 86149 阅读 · 9 评论 -
android局域网内通过socket通信
1:两个手机需要在同一个局域网里面 2:修改客户端Client里面的IP地址,IP地址设置为作为服务端的手机的IP地址 3:最下面为服务端,要安装到一个手机里并先运行起来,会显示本机IP地址,显示Client传来的信息,并给Client反馈 4:Client为客户端,有一个输入框和发送按钮,显示传过去的信息client端/** * create by caoyinfei */publi原创 2016-05-11 19:56:04 · 11559 阅读 · 3 评论 -
json解析-fastjson封装
不少项目中用到阿里的fastjson.jar去解析或者组装json,当转换错误或者解析异常(fastjson.jar在序列号对象时候,会偶现的报异常),所以使用前最后自己封装一层,加上异常的补获,防止第三方jar包的异常导致自身应用crash。封装代码如下:package com.focustech.android.mt.parent.util;import android.util.Log;imp原创 2016-05-11 19:53:10 · 3816 阅读 · 2 评论 -
Service Intent must be explicit解决方案
06-30 20:06:08.251 6892-6892/com.test.aidl E/AndroidRuntime: FATAL EXCEPTION: main Process: com.test.aidl, PID: 6892原创 2016-06-30 20:13:50 · 3277 阅读 · 0 评论 -
IntentFilter匹配规则讲解
前言Android启动activity有两种,显式调用跟隐式调用。显式调用大家平时用得比较多,调用时需要明确的指定被启动对象的组件信息,类名,隐式调用则不需要明确指定组件信息。下面用代码来解释什么是显式启动。 A:显式启动Intent intent=new Intent(MainActivity.this, SecondActivity.class); startActivity(intent)原创 2016-06-14 17:16:12 · 1490 阅读 · 0 评论 -
Android使用UncaughtExceptionHandler捕获全局异常
1. 前言Android应用出现crash时,会出现“程序异常退出”的提示,随后应用关闭,用户体验非常不好。一般为了捕获应用运行时异常后做出适当处理,给出合理提示时,我们开发中可以继承UncaughtExceptionHandler类来处理,提升用户体验。2.使用方法(1)定义CrashHandler处理类,如果发生异常,则在本地文件中记录堆栈信息,代码如下所示:package com.broade原创 2016-09-10 10:31:12 · 5240 阅读 · 0 评论 -
android 沉浸式状态栏-4.4版本qq
1. 前言沉浸式模式(Immersive Mode)大家应该都非常熟悉了,其实说白了,就是全屏显示。类似qq的界面如图所示: 注意:这个特性是andorid4.4支持的,最少要api19才可以使用.2.使用方法仅仅只需要几行代码就能完全实现沉浸式模式: (1)activity中添加如下代码: @Override protected void onCreate(Bundle saved原创 2016-09-01 17:45:12 · 1990 阅读 · 0 评论 -
Android Studio依赖第三方maven库,出现Failed to resolve:***错误
1.前言这个问题折腾了一个上午,写下来记录一下,也让帮助其他人快速解决类似问题吧。2.问题描述项目在一台电脑上正常编译,当换了另外一台电脑后,依赖第三方maven库,下载AAR/JAR包时,一直报Failed to resolve的错误,如下图所示:一开始怀疑是网络问题,sdk版本不匹配,上网搜了一大堆,有人说APP根目录的gradle文件增加如下代码:allprojects{ ...原创 2019-10-10 12:25:09 · 5830 阅读 · 1 评论