
Basic
文章平均质量分 67
Android 基础
Ansen360
从事android手机系统开发7年,就职过2家国内知名手机公司
展开
-
AccessibilityService基本用法
AccessibilityService主要是帮助残障用户使用android设备和应用,它可以监听用户界面的一些状态转换,例如页面切换、焦点改变、通知、Toast等,并且能模拟完成一系列触摸操作.(市面上通过无障碍实现的功能有:抢红包,apk自动安装,一键清理所有后台进程,自动加好友等等)AccessbilityService继承之Service,所以也遵循Service的生命周期,只是它...原创 2016-03-30 22:46:03 · 2902 阅读 · 0 评论 -
Kotlin基础语法
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源.Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行.在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言.Kotlin实现 He...原创 2019-03-13 09:29:21 · 1112 阅读 · 1 评论 -
Android DrawableShape资源的用法,Shape属性,Shape开发
Android shape资源的用法 -<!-- rectangle 矩形 --><!-- 固定颜色与 --> <!-- 渐变颜色 --> <!-- 边角弧度 --> <!-- 内边距 --> <!-- 外部的边界,dashWidth表示每段的长度,dashGap表示段与段之间的间隔 -原创 2015-09-23 01:49:48 · 7428 阅读 · 1 评论 -
Android自定义软键盘输入法,隐藏系统输入法显示光标的实现
android实现自定义软键盘,先上图看效果,效果基本上是仿ios输入法实现的原创 2015-09-23 20:05:28 · 9540 阅读 · 1 评论 -
Android所有对话框_dialog大全
Android在dialog做得封装的得很充分,常用的dialog都封装好了.如果还觉得不够,Android提供用户自定义dialog.先看图:代码部分:package com.tomorrow_p.dialog_p;import android.app.Activity;import android.app.AlertDialog;im原创 2015-09-23 21:36:32 · 7532 阅读 · 1 评论 -
DrawerLayout+NavigationView的用法例子demo下载
Demo效果:下载DrawerLayout将DrawerLayout作为根布局其次是Toolbar,内容区域FrameLayout和左侧滑出后的导航栏NavigationView主页面布局文件:<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="...原创 2015-09-24 00:57:41 · 7422 阅读 · 1 评论 -
屏幕适配,px和dp, sp换算公式
换算公式:PPI =(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数px = dp*ppi/160dp = px / (ppi / 160)sp = px / (ppi / 160)需要熟悉px,dp和sp这些换算公式以及做屏幕适配,我们要需要清楚以下几个概念: px: 是英文单词pixel的缩写,意为像素,屏幕上的点。我们通常所说的分原创 2015-10-21 22:16:46 · 11104 阅读 · 1 评论 -
ConstraintLayout用法及和RelativeLayout测试对比性能
ConstraintLayout 简介:ConstraintLayout是Android Studio 2.2中主要的新增功能之一,它可以在不嵌套任何布局的情况下构建复杂的布局.它与RelativeLayout非常相似,所有的view都依赖于相邻控件的相对关系.而ConstraintLayout比RelativeLayout更加灵活,在AndroidStudio中进行拖拽即可完成布局....原创 2017-11-03 11:06:58 · 5681 阅读 · 1 评论 -
Netty Http协议栈开发(客户端&服务端)
协议栈是指网络中各层协议的总和, 反应了一个网络中文件传输的过程: 由上层协议到底层协议,再由底层协议到上层协议.一.Netty Http+Json 协议栈开发时序图:1. 构造请求信息,编码为http+json Netty的http协议栈提供了构造http请求消息的相关接口2. 客户端发起http请求3. 服务端对客户端原创 2015-09-24 00:39:31 · 10528 阅读 · 1 评论 -
Android Socket通讯TCP和UDP协议Demo
网络通信三要素: IP -- 端口 -- 协议(UDP、TCP)TCP协议特点: 可靠,速度慢建立连接通道,数据无限制,面向连接(在正式收发数据前,必须和对方建立可靠的连接,三次对话才能建立连接)UDP协议特点: 不可靠,但速度快把数据打包,数据有限制,面向无连接(不与对方建立连接,而是直接就把数据包发送过去)共同点: 同属于传输层协原创 2015-09-24 01:03:53 · 7642 阅读 · 1 评论 -
Android实现AirPlay,DriodAirPlay开发
AirPlay的介绍就不多说了,在Android上实现AirPlay我们主要参考的是国外大神破解出来的DriodAirPlay。下载DroidAirPlay源码 DroidAirPlay是一个Maven工程,这是能在PC上跑起来的。在PC上实现性能杠杠的!! 接下来我们需要把它转化成我们想要的Android工程: 1. 新建一个Android工程,将对原创 2015-10-21 23:10:09 · 10457 阅读 · 4 评论 -
android netty5局域网通讯(客户端+服务端)
这是一个WebSocket协议的Demo,仅仅粗略的实现了功能 WebSocket是HTML5开始提供的一种浏览器与服务器建进行全双工通讯的网络协议,它的出现是为了解决HTTP协议效率低下的问题,WebSocket能更好的节省服务器资源和带宽并达到实时通信!Demo下载Client:package com.tomorrow_p.netty_p;i原创 2015-10-28 23:38:33 · 6491 阅读 · 0 评论 -
Android8.0后台服务限制适配
Android8.0的后台服务限制导致如下报错:--------- beginning of crashE/AndroidRuntime( 4237): FATAL EXCEPTION: mainE/AndroidRuntime( 4237): Process: com.ansen.appsettings, PID: 4237E/AndroidRuntime( 4237): jav...原创 2018-12-05 17:14:36 · 1815 阅读 · 1 评论 -
AndroidActivity自定义切换动画,左右滑动切换activity
Android实现activity切换效果的两种方式:首先在res下创建anim文件夹,并且创建out_from_left.xml和in_from_right.xml两个动画资源### 调用方法实现Android2.0开始在Activity增加了一个方法:public void overridePendingTransition (int enterAnim, int exit原创 2015-09-24 00:33:21 · 6008 阅读 · 0 评论 -
Android蓝牙开发和BLE通讯Demo
[源码地址](https://github.com/ansen360/CodeRepository/tree/master/app/src/main/java/com/code/bluetooth)原创 2015-09-19 01:37:26 · 7143 阅读 · 0 评论 -
FileProvider文件共享FileUriExposedException异常解决
FileProvider是一个特殊的ContentProvider子类,它将 content:// Uri 代替了 file:/// Uri ,从而促进与应用程序关联的文件的安全共享.官方文档在Android N 7.0上,没有使用FileProvider访问其他文件可能会出现如下异常:AndroidRuntime: FATAL EXCEPTION: Thread-2An原创 2016-04-02 11:53:54 · 5219 阅读 · 0 评论 -
Android开发笔记 - 示例代码
非Activity判断当前是否处于分屏模式 public int getDockSide() { try { return WindowManagerGlobal.getWindowManagerService().getDockedStackSide(); } catch (RemoteException e) {原创 2015-11-07 17:36:27 · 3555 阅读 · 0 评论 -
android home键,back返回键监听,Window窗体监听返回键
在Activity中监听或拦截返回键重写dispatchKeyEvent()方法 @Override public boolean dispatchKeyEvent(KeyEvent event) { if(event.getKeyCode()==KeyEvent.KEYCODE_BACK){ Log.d("ansen", "KEY原创 2016-03-30 22:58:37 · 3957 阅读 · 1 评论 -
Java实现定时任务的几种方式
Thread 最普通方式(不推荐) Runnable runnable = new Runnable() { public void run() { SystemClock.sleep(8000); System.out.println("thread"); } }; Th...原创 2015-09-19 01:34:08 · 4274 阅读 · 0 评论 -
Android APP 提高进程服务优先级 常驻内存 服务杀不死
首先明确,国内定制的系统(小米,华为,OPPO等)都实现了 无论自启或提升进程优先级的策略都能被杀死,而对于用户量大的APP(如微信)和系统级别APP 系统有做白名单;抛开那些定制系统,还是有很多原生系统没有这些策略,或者说那些系统优化策略不彻底,因此我们提升进程优先级才变得有意义1.针对系统签名APP 进程永驻(系统级别的kill和forceStop也杀不死)添加android:persiste...原创 2015-09-24 00:43:20 · 9735 阅读 · 1 评论 -
Android热修复Hotfix原理
插件化:一个程序划分为不同的部分,以插件的形式加载到应用中去,本质上它使用的技术还是热修复技术,让它支持大规模的代码更新以及资源和SO库的更新,将一个大apk改造成多个小apk,支持在线实时改变APP样式,在线更新添加功能等等(不用重新下载安装包安装)解决应用越来越大导致的各种限制(如65535方法数限制)热修复:当线上应用出现紧急BUG,为了避免重新发版,并且保证修复的及时性而进行的一项...原创 2016-03-30 22:39:45 · 1737 阅读 · 1 评论 -
Android视频转换GIF图片Bitmap转GIF
仿Iphone拍摄动态GIF图的实现思路同此:1秒内连拍多张图片(Bitmap),将图片的集合按如下方式制作GIF图片实现原理:1.读取视频文件,将视频文件解析为Bitmap序列2.将Bitmap 序列编码生成 GIF 文件代码下载代码流程打开Android系统文件管理: Intent intent = new Intent(); int...原创 2015-09-19 02:22:21 · 6432 阅读 · 2 评论 -
Android加速度传感器 -- 抬手亮屏
android系统提供以下传感器供应用层使用,具体如下:// android.hardware.SensorTYPE_ACCELEROMETER 1 // 加速度传感器TYPE_MAGNETIC_FIELD 2 // 磁力传感器TYPE_ORIENTATION 3 // 方向传感器TYPE_GYROSCOPE 4 // 陀螺...原创 2018-06-06 14:46:20 · 7757 阅读 · 1 评论 -
Android获取GPS网络定位经纬度信息
定位一般分为是:GPS定位,WIFI定位,基站定位 和 AGPS定位GPS定位GPS定位需要手机GPS模块硬件支持.GPS走的是卫星通信的通道,在没有网络连接的情况下也能使用,并且通过GPS方式准确度是最高的但是比较耗电,绝大部分用户默认不开启GPS模块,从GPS模块启动到获取第一次定位数据,可能需要比较长的时间,室内几乎无法使用网络定位网络定位是指利用基站或Wi-Fi访问提供近似的位置信息,这种...原创 2015-11-07 17:38:57 · 4047 阅读 · 1 评论 -
JobScheduler用法
JobScheduler是Android L(API21)5.0新增的特性,它可以将作业推迟(合并)到稍后或指定条件下(如设备充电或连入 WLAN 时)执行来优化电池寿命JobScheduler文档JobScheduler 例子近几个android版本中针对电量优化功能JobScheduler用法:1.创建一个MyJobService继承自JobService(具体业务逻辑实现)...原创 2015-09-23 01:55:51 · 7363 阅读 · 0 评论 -
Android应用面试题及答案汇总
android面试题2019 答案 Java 基础 String、StringBuffer、StringBuilder的区别 03 进程和线程的区别;多线程与线程池 16 java中equals和==的区别 ...原创 2019-10-08 16:57:12 · 1758 阅读 · 2 评论