Android
文章平均质量分 86
xjz729827161
Android H5各种搬砖,打杂。保持学习,并记录的热情
展开
-
Looper其实很简单
每次提到这个looper,就有点感觉轻视的感觉,不就是个消息列队么。可是当别人问起,又不知道从何讲起,这次来一起捋一捋其中的道道,捋清楚后发现,还是很简单,哈哈。Looper是一种单个线程中持续处理消息的的方式。涉及到几个重要的类Looper // 消息的调度MessageQueue // 消息的存储Message //消息本身,可以负载数据,也分为同步消息,异步消息Handler //callback, runable, 消息的入口和处理地方以主线程的Looper为例创建Loope.原创 2021-11-05 16:49:10 · 2686 阅读 · 0 评论 -
android 录屏不录制自身的悬浮框
通过MediaProjectionManager的录屏操作,做了个简单的应用,但是每次都把自身的悬浮框录制了进去,脑壳疼。使用系统自带的录屏工具就不会有这个问题。为了一探究竟,捣鼓出了系统的录屏工具apk后,查看了下代码。得到了一份解决方案,附上工具类的代码。思路就是伪造window的标题和flagpackage com.ux.xposed.utils;import android.graphics.PixelFormat;import android.os.Build;import androi原创 2020-08-27 10:05:23 · 5987 阅读 · 29 评论 -
Android系统APP的odex转dex
因为工作的需要,需要反编译查看系统的应用的代码做了什么。与普通的应用不同的,很多的系统应用的apk文件中只有资源,真正的代码已经在出厂时经过了预编译变成了odex/oat的文件拷贝应用//通过pm获取对应应用包名的apk的路径adb shell pm path "packagename"//可以拷贝apk到本地adb pull "apk路径"拷贝oat如果只是上面的普通文件,则已经可以达到目录了,部分的system app里面是空壳,则需要如下操作//拷贝统计oat,以某个截屏系原创 2020-08-27 09:35:39 · 1094 阅读 · 0 评论 -
Gralde的task说明
前言接上一篇文章提到的,task的构建有向无环图,这个是gralde后期执行的核心,这期需要重点了解下task在写task之前,先解决一个比较重要的问题。在gradle写代码是很痛苦的,没有提示很难保证自己写的代码是正确的,属性有哪些?不知道!方法有哪些?不知道!一直在摸瞎的路上各种尝试或者copy代码,脑阔疼。这里有一个折中的方法供大家参考下。dependencies { gradleApi() implementation 'com.android.tools.build:gradle:3.原创 2020-08-21 19:26:04 · 276 阅读 · 0 评论 -
安卓安全那点事
本文旨在对于一个安卓app的安全知识做一个较为泛泛的总结,为开发出更安全的应用提供思路。内容比较粗略,仅起到抛砖引玉的效果,还望大家见谅。Android应用的安全意义在维基百科上有一个关于计算机安全的定义:计算机安全(computer security)是计算机与网络领域的信息安全(information security)的一个分支。其目的是在保证信息和财产可被授权用户正常获取和使用的情况下,保护此信息和财产不受偷窃,污染,自然灾害等的损坏。计算机系统安全是指一系列包含敏感和有价值的信息和服务.原创 2020-07-01 09:28:05 · 546 阅读 · 0 评论 -
android View移动的四种方式
我喜欢看动态的东西,总想着能够做出炫酷啊的东西,先要学习一些基本的让Anroid视图动起来的方式。Android 为了达到移动的目的,有多种移动的方式。这几张方式的限制和使用 早期让我觉得有些懵。现在做一个总结,综述下这些移动方式,讲述他们的差异和用途。改变布局参数。通过设LayoutParams 的margin来改变布局,达到移动的目的改变scrollX scrollY 属性。 ...原创 2018-09-02 15:01:27 · 12719 阅读 · 1 评论 -
Android 阴影背景的四种实现方式
先上图,看看最终个效果。总的来中有二种手段来实现 1. 使用layer-list 2. 使用Elevant使用layer-listlayer-list的方式的就一层一层绘制叠加,下面的item总是覆盖在上面的item上。方式一:用一条条的线条来叠加就是一条条有梯度的线条来模拟一个阴影效果,具体背景drawable如下代码所示:<?xml versi...原创 2018-08-27 20:06:09 · 22177 阅读 · 0 评论 -
Android Apk解析
本文主要解释APK的结构,以及其相关的解析过程.内容分为两部分,一部分是反编译的类文件查看,一部分是其它的文件查看.(拿到一个apk还是可以获取不少信息的,想想还有点小激动)apk的文件就是一个普通的归档文件,我们先用zip包的方式打开,看到的目录如下图所示.红色框框部分的.dex是没法直接查看的.这里需要反编译后得到.class文件,然而普通的.class文件也没法直接查看,这里我们选择jd-g原创 2017-09-25 19:21:44 · 10564 阅读 · 0 评论 -
android 开发不得不了解的adb
如果你还在慢慢在手机点击各种界面来 进行对应的操作,那你就太out 了.通过adb 连接上你的手机,你就拥有了全世界.ADB 全称 Android Debugger Bridge . 是放在android sdk包 platform-tools 中的一个可执行程序工具.因为是一个单独的程序,所以如果有需要的话可以把它和它依赖的库单独的拿出来使用,不用下载完整的sdk.官网上有这个一个地址用来介绍原创 2017-12-09 11:32:31 · 359 阅读 · 0 评论 -
Gradle工作原理全面了解
说gradle之前先扯个笑话,有次我给我同事说,gradle在web里面管理各种jar也挺好用的,我同事跳起来“纳尼,这玩意还可以用在别的地方,不是android特有的么?” 。可能做某一项工作可能就认为都是为自己服务的 ,这个想法很奇怪的。 gradle是一个用来管理的编译构建流程的软工具而已,我是这么理解的。一、 没有你的日子里(手动悲伤)如果你手动的来完成一个可以执行的java程序要经历...原创 2018-09-27 19:31:45 · 7813 阅读 · 3 评论 -
android调试stetho的那点事
在调试安卓程序的过程中,受不了每次看日志查看网络的响应和导出db的动作(甚至有时候都无法导出db),这里安利一个facebook出品的神器 stetho,不过这个有些限制,在使用的时候一定的通过usb与调试的手机相连通的,也要使用chrome浏览器1. stetho支持的功能支持的功能主要是针对网络和db的,看github项目上的趋势,应该是在准备一些后续的功能(按照需求集成咯,我觉得网络和d...原创 2018-10-22 15:06:52 · 1694 阅读 · 0 评论 -
Android编译gradle 动态修改版本号
在构建代码的时候不想每次都修改版本号,需能够增加一个功能在特定的条件下动态的修改版本号在manifest里面加入占位符号<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="${versioncode}" android:versi...原创 2018-11-26 15:06:15 · 4572 阅读 · 3 评论 -
Dialog不能设置宽高的问题
此文仅记录一个坑大家都知道dialog设置宽高 的代码如下: WindowManager.LayoutParams lp = dialog.getWindow().getAttributes(); lp.width = width; //设置宽度 lp.height = height; //设置高度 dialog.getWindow...原创 2018-12-06 16:50:24 · 2489 阅读 · 3 评论 -
Android静默安装和卸载
记录一次坑爹的Android静默安装和卸载,别人遇到的问题我都遇到了。 终于找到了一个详细的解释的地方这里是详细的地址转载 2019-05-15 11:34:41 · 397 阅读 · 0 评论 -
解决stetho第一次连接白屏的问题
1.首先确定网络有没有被墙调,能访问谷歌不见得chrome的某些服务没有被墙ping chrome-devtools-frontend.appspot.comping chrometophone.appspot.com如果两者都能ping的通,直接在chrome浏览器里输入chrome://inspect找到要调试的页面就好2.如果上述两个网址ping不通我们要进行如下操作打开网...原创 2020-11-24 11:04:15 · 756 阅读 · 0 评论 -
android反编译系统应用
因为工作需要,需要看看某个系统apk是怎么实现特定的功能的。 看看有没有可以利用的地方获取到应用的包名打开应用的某个页面进入adb shellshell里面 dumpsys activity|grep ACTIVITY 获取到包名根据包名查看应用的信息获取apk的路径 adb shell pm path {包名}把apk拉到本地adb pull {remote...原创 2019-06-11 19:39:14 · 426 阅读 · 0 评论 -
ReactNative中的布局
ReactNative的布局模型ReactNative采用的布局模型是css中的flex模型,对其做了一点点的改动,因此,会先介绍CSS的flex布局模型,然后再简单的说明差异CSS中的Flex布局模型 需要注意的是flex布局模型只是显示模型中的一种,不能误以为css只能这么做网上有一篇文章写的贼好,把该说的都说清楚了。我就不做重复工作了。 戳这里总结下布局其所做的事情: 1. 决定主原创 2017-09-12 19:06:03 · 719 阅读 · 0 评论 -
ReactNative了解(android)
ReactNative了解(android) 本文旨在对android 端的组件进行定制化,android原生中的实现方式,以及说明原生代码与js的交互过程组件定制 以下的自定义模块都要加入一个ReactPackage,ReactPackage需要加入一个ReactNativeHost,这个步骤不做具体的说明,在以下的说明中都略过.在js中也需要进行必要的模块导入,相当于java中的包导入原创 2017-08-19 15:28:39 · 348 阅读 · 0 评论 -
ubuntu下反编译工具安装使用
ubuntu下反编译工具安装使用不想动,真的很懒,下源码什么的最讨厌.配置什么的最坑爹.只想安安静静的使用下一个工具,最好安装后直接使用就好.对,你来对了地方.这里译工具使用enjarify,查看反编译后的类文件使用jd-gui安装enjarify下载文件,戳我下载安装 sudo dpkg -i enjarify_1.0.3-3_all.deb安装jd-gui下载文件, 戳我下载安装原创 2017-07-07 17:37:20 · 2835 阅读 · 1 评论 -
Android 根据触摸状态切换背景,颜色,字体等状态
问题的来源: 初学Android时,设计部给出的要求是当点击某一个大的控件(这个控件是个复杂的布局,中间有很多图标,文字之类的)会出现不同的效果。我们知道可以使用xml文件来实现按钮不同状态下的变化。但是当多个布局一起的时候就感觉不这样用了,至少我当时是准备用代码去实现的,其实根本就没有必要。最简单有效的办法:仍然是使用xml文件来实现,给你每个需要变化的控件都配置上相应的xml文原创 2016-06-12 17:11:36 · 1977 阅读 · 0 评论 -
android studio 网络依赖升级
使用AndroidStudio 会用到很多通过网络去依赖的库。比如faceBook的图片处理库compile 'com.facebook.fresco:fresco:0.9.0' 这个时候需要库进行升级到0.12.0,但是会发现,即时是在后面修改了版本号,AndroidStudio依然不会下载最新的库。理由很简单,AndroidStudio进行了缓存操作。你需要把本地缓存先删除了原创 2016-09-12 17:28:13 · 631 阅读 · 0 评论 -
android 6.0 新特性
一 .RunTime Permission (运行时权限) 这一点是与之前有很大的不同,之前的权限都是在清单文件中申请,在安装的时候由用户一次授权完成。6.0的版本把部分权限改成了在程序运行的过程中去动态的向用户申请。这部分的用法较多,以后详细说明。这个功能只有在申明targetSDKVersion >= 23 的才会生效二.睡眠模式 APP的待机模式 睡眠模式:原创 2016-09-06 14:05:00 · 724 阅读 · 0 评论 -
android 系统 使用统计 2016 八月
来自google官网呀呀~~VersionCodenameAPIDistribution2.2Froyo80.1%2.3.3 -2.3.7Gingerbread101.7%4.0.3 -4.0.4Ice Cream Sandwich原创 2016-09-06 16:17:37 · 1895 阅读 · 0 评论 -
Android 自定义View 之 触摸消息派发
在Android中主要存在两种事件,一种是按键事件,对应物理按键或者虚拟按键,一种是触摸屏事件。本文主要了解触摸消息的传递过程,以及可以对消息做什么处理。是验证性质分析! 对于所有的消息处理,底层的东东,应用工程师不太关心,不过要大致知道是什么情况,其总的过程如下所示。 触摸的消息从动作DOWN开始,UP或者CANCEL结束,中间一般可以有MOVE等操作。原创 2016-12-14 20:22:00 · 565 阅读 · 0 评论 -
Android 窗口机制
Android 窗口特点 Android窗口是层叠式布局,顾名思义,它是可以允许多个窗口层叠显示。该布局一般需要一个窗口管理服务端,服务端采用的是共享库的方式来进行工作,这种方式一般用在嵌入式设备上,开销较小。层叠式的展示采用是z-order的规则,层级越大的越是在上面Android 中到底什么是窗口?又与View有什么不同? View只是单纯的视图的展示,是一个可见的块。原创 2016-05-21 16:33:45 · 522 阅读 · 0 评论 -
android 搭建https Server
在Android上面搭建HTTPS server。用于小型设备上提供服务。常用的场景有智能音箱类似的带嵌入性质的设备原创 2016-12-05 17:36:23 · 5975 阅读 · 4 评论 -
Android 启动优化
第一种状态:APP启动前有白屏或者黑屏 这种情况可能比较常见,有效的方法就是在启动页的Activity上透明的window属性。大多数的APP都会这么做,每次重新打开的时候都会等个几秒,一直展示是某个画面。 假设这个Activity叫AcBoot,给其Activity设置theme<activity android:name=".AcBoot"原创 2016-09-08 09:43:27 · 587 阅读 · 0 评论 -
Android 自定义View 之测量过程(onMeasure)
一、测量的目的 如果安卓的布局体系中全部都是精确的值,那就没有必要关心测量过程了。事实上,在布局文件中写的布局参数都是match_parent,wrap_parent或者精确值。 测量的目的就是为了将match_parent,wrap_parent这些相对大小,转换为具体的值。二、测量的依据 应用开发者有三种方式表示长宽:match_paren原创 2016-12-17 16:33:23 · 843 阅读 · 0 评论 -
android JNI (NDK)的故事
java 是可以与C/C++互相调用的,两种通过JNI来完成,非常有意思的操作。本文介绍ndk-build工具来生产.so库 文件后缀(Window平台)文件后缀(Linux平台)源文件.c.c中间件.object.o静态原创 2016-12-07 08:19:16 · 425 阅读 · 0 评论 -
Android 性能优化小技巧
Android 性能优化小技巧说明:本文翻译来源谷歌官网[https://developer.android.google.cn/training/articles/perf-tips.html]非完全翻译,按理解来的,水平有限,勿喷!本文主要包括能够细微改善所有APP性能,通过这些改进不能造成性能的翻天覆地变化。选择正确的算法和数据结构才是的优先考虑的事,但是这已经超过了本文档的范围。你应该使用翻译 2017-01-15 18:13:10 · 311 阅读 · 0 评论 -
Android UI适配(dp,dpi,px介绍)
简单的介绍Android的适配怎么做的。 先上一个图: 图中的屏幕尺寸为宽X英寸,长为Y英寸,则对角线长为Z,响应的横向的像素点为M,纵向的像素为N,对角线的像素点为L。 L/Z的值就是手机屏幕的像素密度。单位是dpi (dot per inch),每英寸的像素的点数。为什么要用对角线而不是长或者宽的像素密度,因为两者很可能不一样,要做到兼顾,去对角线的像素原创 2016-11-07 19:34:18 · 782 阅读 · 0 评论 -
Android 图片处理
本文主要介绍Android中对于图片的处理原创 2016-12-21 14:55:41 · 518 阅读 · 0 评论 -
FileProvider Failed to find configured root that contains
拍照为了支持AndroidN需要使用兼容的方式,传递参数的时候需要使用:if (Build.VERSION.SDK_INT >= 24) { uri = FileProvider.getUriForFile(mActivity, "XXXXX", file);}else { uri = Uri.fromFile(file);}但是,坑爹的,当手机有额外的SDcar原创 2017-05-23 15:27:25 · 540 阅读 · 0 评论 -
Proguard说明,android代码混淆
Proguard简介介绍 ProGuard is a Java class file shrinker, optimizer, obfuscator, and preverifier.shrink:去除无用的类和成员optimize:进一步优化,方法内联,去除无用方法参数,非入口方法变成私有,静态的,finalobfuscate:非入口点的方法和类进行重命名preverify:androi原创 2017-05-17 16:18:04 · 1289 阅读 · 0 评论 -
Android Data Binding Guide
注:没有完全按照原文翻译,加入了一点自己的理解。数据绑定指南这篇文档解释怎样去写出描述性的布局以及最小化关联代码用来绑定你的应用程序逻辑和布局。这个Data Binding Library 提供灵活的 ,宽泛的兼容性——它是个支持库,可以用它在Android2.1(API 7+)以上的系统。使用这个库需要Gradle插件1.5-alpha1或者更高的版本Buid环境为了使用Da翻译 2016-05-13 08:19:00 · 342 阅读 · 0 评论