错误信息: 03-28 10:16:12.701   830   932 E AndroidRuntime: FATAL EXCEPTION: Thread-903-28 10:16:12.701   830   932 E AndroidRuntime: Process: com.solomo.azt, PID: 83003-28 10:16:12.701   830   932 E AndroidRuntime: java.lang.SecurityException: MODE_WORLD…
Windows的调试工具支持通过USB 2.0电缆进行内核调试.本文介绍如何手动设置USB 2.0调试.通过USB 2.0电缆进行调试需要以下硬件: USB 2.0调试电缆.此电缆不是标准USB 2.0电缆,因为它有一个额外的硬件组件,使其与USB2调试设备功能规范兼容.您可以在Internet上搜索“USB 2.0调试电缆”一词来找到这些电缆. 在主机上,有一个ehci(usb 2.0)主机控制器 在目标计算机上,支持调试的ehci(usb 2.0)主机控制器. 设置目标计算机 1.在目标计算…
接上篇博文:Android7.0 Phone应用源码分析(一) phone拨号流程分析 今天我们再来分析下Android7.0 的phone的来电流程 1.1TelephonyFramework 当有来电通知时,首先接收到消息的是Modem层,然后Medoem再上传给RIL层,RIL进程通过sokcet将消息发送给RILJ(framework层的RIL),同样进入RILJ的processResponse方法,根据上一章节去电流程的分析得知,来电属于UnSolicited消息,事件ID是 RIL_…
Android7.0 多窗口你值得拥有 什么是多窗口分屏? 多窗口分屏其实在国内并不陌生,已经有一些手机和平板搭载了"分屏多任务"和"APP窗口化"功能,但这些都是手机厂商自主定制系统中添加的功能,并非安卓原生所有,因此他们的实现方式可能会不一样,但是现在google原始开始支持,这样对厂商来说也有了标准,对体验和性能上也会比较好. 多窗口解决什么问题(平板适配问题). 一些android app没经过适配,在平板上安装,会导致布局分散,用户体验很差,现在7.0对的…
本文出自:贾鹏辉的技术博客(http://www.devio.org) http://www.devio.org/2016/09/28/Android7.0%E9%80%82%E9%85%8D%E5%BF%83%E5%BE%97 Android7.0发布已经有一个多月了,Android7.0在给用户带来一些新的特性的同时,也给开发者带来了新的挑战,这几天我将应用适配到Android7.0,其中也遇到了不少问题也踩了一些坑,在这里就把我在Android7.0适配上的一些心得分享给大家,让大家的应用…
新特性部分 Android 7.0 Nougat 提供新功能以提升性能.生产效率和安全性,主要新增了下面的新特性和优化: 一.新的Notification Android N 添加了很多新的notifications API,进行了又一次的设计,引入了新的风格. 模板更新: 开发人员将能够充分利用新模板,仅仅需进行少量的代码调整. 消息样式自己定义: 新增自己定义样式.消息回复.消息分组等更加灵活. 捆绑通知: 系统能够将消息组合在一起(比如,按消息主题)并显示组.用户能够适当地进行 Dismi…
 參考:http://blog.csdn.net/gaugamela/article/details/52981984 在Android M中.Google就引入了Doze模式.它定义了一种全新的.低能耗的状态. 在该状态,后台仅仅有部分任务被同意执行,其他任务都被强制停止. 在之前的博客中分析过Doze模式.就是device idle状态.可能有的地方分析的不是非常具体,如今在android7.0上又一次分析下. 一.基本原理 Doze模式能够简单概括为:  若推断用户在连续的一段时间内没…
本篇注意接着上篇[Android7.0 PowerManagerService 之亮灭屏(一)]继续分析量灭屏的流程,这篇主要分析PMS的状态计算和更新流程,也是PMS中最为重要和复杂的一部分电源状态管理. 接上篇继续,在Notifier的广播处理完毕后就会调用PMS的内部函数updatePowerStateLocked()来更新全局电源状态.         任何涉及到电源的操作(如量灭屏和应用获取wakeLock锁等)PMS都会调用updatePowerStateLocked()来更新电源的…
1.简介 通过宏哥前边几篇文章的讲解和介绍想必大家都知道android7.0以上,有android的机制不在信任用户证书,导致https协议无法抓包.除非把证书装在系统信任的证书里,此时手机需要root权限.但是大家都知道root手机是非常繁琐的且不安全,对于大多数来说是不切实际的,那android7.0以上有没有不需要root的解决方案,答案当然是有的,我们主要安装两个app就可以解决. 上一篇介绍的xposed需要将手机root,这样一来手机的安全性就无法保证,如果是测试机或者模拟器还好一些…
1.1 dialer拨号 拨号盘点击拨号DialpadFragment的onClick方法会被调用 public void onClick(View view) { int resId = view.getId(); if (resId == R.id.dialpad_floating_action_button) { view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); handleDialButtonPressed(…
asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证:摘要认证(digest authentication) asp.net权限认证:OWIN实现OAuth 2.0 之客户端模式(Client Credential) asp.net权限认证:OWIN实现OAuth 2.0 之密码模式(Resource Owner Password Credentia…
本文主要分析Android拒接电话的流程,下面先来看一下拒接电话流程时序图 步骤1:滑动按钮到拒接图标,会调用到AnswerFragment的onDecline方法 com.android.incallui.AnswerFragment public void onDecline(Context context) { getPresenter().onDecline(context); } 最后是调用到AnswerPresenteronDecline方法 com.android.incallui…
电话挂断分为本地挂断和远程挂断,下面我们就针对这两种情况各做分析 先来看下本地挂断电话的时序图: 步骤1:点击通话界面的挂断按钮,会调用到CallCardPresenter的endCallClicked方法,请看CallCardFragment里挂断按钮的监听事件 com.android.incallui.CallCardFragment public void onViewCreated(View view, Bundle savedInstanceState) { ...... ......…
拍照.本地图片工具类:解决了4.4以上剪裁会提示"找不到文件"和6.0动态授予权限,及7.0报FileUriExposedException异常问题. package com.hb.weex.util; import android.Manifest; import android.app.Activity; import android.app.Dialog; import android.content.ClipData; import android.content.Conten…
OK,在前面两篇博客中我们分别介绍了WmS中的token,同时也向小伙伴们区分了Window和窗口的区别,并且按照type值的不同将Android系统中的窗口分为了三大类,那么本篇博客我们就来看看应用窗口(即Activity所对应的窗口)到底是怎么创建出来的,如果小伙伴们尚不理解WmS中的token,或者不清楚Window和窗口的区别,可以先看看下面两篇博客,可以帮助你理解本文: 1.WmS详解(一)之token到底是什么?基于Android7.0源码 2.WmS详解(二)之如何理解Window…
Centos7.0进入单用户模式修改root密码   启动Centos7 ,按空格让其停留在如下界面. 按e进行编辑 在UTF-8后面输入init=/bin/sh 根据提示按ctrl+x 得如下图 输入mount -o remount,rw /  然后输入passwd设置新密码,如下图 输入 touch  /.autorelabel  更新系统信息 重启系统即可.…
Android手机拍照.剪裁,并非那么简单 简书地址:[我的简书–T9的第三个三角] 前言 项目中,基本都有用户自定义头像或自定义背景的功能,实现方法一般都是调用系统相机–拍照,或者系统相册–选择照片,然后进行剪裁,最终设为头像或背景. 而在Android6.0之后,需要动态获取权限,而且Android7.0之后,无法直接根据拍照返回的URI拿到图片,这是因为从安卓7.0开始,直接使用本地真实路径被认为是不安全的,会抛出FileUriExposedExCeption异常,本文就是基于这个功能去针…
Android7.0应用内升级 最近线上项目在7.0机器上出现应用内升级失败,原来是由于Android7.0权限问题导致. 如果项目的 targetSdkVersion>=24 在处理应用内升级的时候需要兼容7.0. 1.创建file_paths.xml文件 在res下创建xml文件夹,然后在xml文件夹下创建file_paths.xml文件. <?xml version="1.0" encoding="utf-8"?> <resources…
我们在开发app时避免不了需要添加应用内升级功能.当app启动时,如果检测到最新版本,将apk安装包从服务器下载下来,执行安装.安装apk的代码一般写法如下,网上随处可以搜到 public static void installApk(Context context, File file) { Intent intent = new Intent(Intent.ACTION_VIEW); Uri data = Uri.fromFile(file); intent.setDataAndType(d…
我们使用手机的时候经常会看到应用程序提示升级,大部分应用内部都需要实现升级提醒和应用程序文件(APK文件)下载. 一般写法都差不多,比如在启动app的时候,通过api接口获得服务器最新的版本号,然后和本地的版本号比较,来判断是否需要弹出提示框下载,当然也可以通过推送的自定义消息来实现. 我们这里主要讨论的是应用程序下载,并在通知栏提醒下载完成. 实现过程大致分为三步: 创建一个service 在service启动的时候创建一个广播接受者,用于接受下载完成的广播 当BroadcastReceive…
Android7.0新推出了一个非常实用的功能--添加快速设定(或者翻译成快速设置),但是感觉社区里关注的人比较少,可能目前为止国内还没有Android7.0的手机,但是越早接触越好,甚至可以告诉产品经理7.0以上可以实现此功能,从而让公司的产品更加与时俱进. "快速设置"通常用于直接从通知栏显示关键设置和操作,非常简单.在Android 7.0以后任何应用都可以在下拉菜单中添加自己的快速设定,从而让程序更加灵活方便. 对于用户来讲: Google工程师为额外的"快速设置&q…
1.简介 众所周知,假如设备是android 7.0+的系统同时应用设置targetSdkVersion >= 24的话,那么应用默认是不信任安装的Fiddler用户证书的,所以你就没法抓到应用发起的https请求,然后你在Fiddler就会看到一堆200 HTTP Tunnel to xxx.xxx.xxx:443的请求日志,这些都是没有成功抓取的https请求,下面重点介绍一下各种解决方案,相信总有一款解决方案适合你~ 在抓包测试中,相信很多人都遇到过 Android 高版本(Android…
本期 fir.im Weekly 整理了最近的一些技术分享,包括关于 Log Guru 开源.Xcode 探索. Android7.0 适配等等 iOS/Android 相关的工具.源码分享和技术文章,希望对你有用. Log Guru 正式开源 Log Guru,是 fir.im 开发团队创造的小轮子,用在 Mac 电脑上的日志获取.Github 地址:FIRHQ/LogGuru,针对 iOS10 的系统问题,新增了「暂停 - 继续」的功能,具体详情请看这里. 通过Xcodeproj深入探究Xc…
xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是在给项目升级的时候用xcode8.0打包并且上传构建的版本后,在新建版本里看不到新上传的 构建版本 并且在"活动"里也找不到新版本的信息,上传多次还是不行如下图 经查阅资料是 iOS10的权限兼容问题,现有如下解决办法 打开 info.plist 文件添加一下 权限设置(原则上只添加在你的…
Appium适配Android7.0以上版本 测试机型: 华为荣耀V9 安卓版本: Android7.0 appium版本: 1.65 说明: 公司新采购了一批安卓机器,拿了其中一台华为荣耀V9跑之前写的测试用例,发现每次登陆以后进入到MainActivity了之后,==元素就获取不到了==,试了一下==driver.page_source==也是报了超时.本能反应是==Android7.0==的问题,于是去testerhome搜了巨多安卓7.0的东东.找到了一些头绪. 感谢一下这位meil00…
上篇博客(WmS详解(一)之token到底是什么?基于Android7.0源码)中我们简要介绍了token的作用,这里涉及到的概念非常多,其中出现频率最高的要数Window和窗口这一对搭档了,那么我们今天就来看看到底我们该如何理解Android系统中的Window和窗口. 窗口这个概念,从不同的角度来看它的含义不一样,如果我们从WmS(WindowManagerService)的角度来看窗口,那么这个窗口并不是一个Window类,而是一个View.用户发来的消息被WmS接收之后并不能直接发给各个…
背景:在使用Samsung S系列手机进行自动化测试时,发现同样脚本的情况下华为荣耀系列可以正常运行,最终发现差异在于Android7.0及以上系统和appium版本不匹配,需要升级appium.但需要升级的文件较多,在win环境下不方便执行,所以需要找到一个能够快速解决的方案. 要解决的问题:appium在androidV7.0系统上运行时报错 Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.set…
jdk1.8.0环境变量设置 1.jdk安装完毕 打开如下链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,进入JDK1.8下载官网,或者直接百度JDK1.8,也可进入下载官网. 2.进入计算机-系统属性-高级系统设置 在弹出的窗口中点击左边的高级系统设置: 在弹出的对话框中单击”高级“选项卡,接着点击下方的环境变量: 3.新建系统变量JAVA_HOME: 变量名:JAVA…
Android7.0适配APK安装 适配的原因 对于面向Android7.0的应用,Android框架执行的StrictMode API政策禁止在您的应用外部公开file://URL.如果一项包含文件URL的intent离开您的应用,则应用出现故障,并出现FileUriExposedException异常. 要在应用间共享文件,您应发送一项content://URL,并授予URL临时访问权限.进行此授权的最简单方式是使用FileProvider类. 官网文章地址:https://develope…
项目地址,求starhttps://github.com/979451341/AppAlive 本人在学习音视频时无意发现的黑科技,发现在使用AudioTrack播放音乐时,使用手机的一键清理发现程序还在,我指的是Activity还活着. 我当时就想起来了酷狗音乐也是这样,当我没有播放音乐时,这个酷狗音乐通过我一键清理会死掉,如果我播放音乐再一键清理就不会死,而且它还有前台通知存活,但是如果暂停音乐再一键清理还是会死. 我再说说我的程序 我在raw文件下放了一个pcm文件,然后播放这个pcm D…