
Android高级
原来是图哥
盖世英雄少女心
展开
-
各个版本的gradle下载
各个版本gradle下载原创 2023-12-27 18:45:09 · 2696 阅读 · 0 评论 -
Https相关
HTTPS通信原理-证书交换_BlackFee的博客-优快云博客_证书交换HTTPS的协议需求与密钥交换过程 - 简书协议需求1、对内容进行加密建立一个信息安全通道,来保证数据传输的安全。SSL/TLS协议进行加解密,常用的非对称算法为RSA。公钥加密,私钥解密。2、能够进行身份认真确认对方的真实性。证书由受信任的数字证书机构(Certificate Authority, CA)所颁发的,就认为对方是真的。3、能够保证数据的完整性防止内容被第三方冒充或篡改。4、需要具备原创 2022-01-25 15:08:17 · 3410 阅读 · 0 评论 -
Android屏幕截屏(全屏bitmap)
调用:Bitmap bitmap = setConfig(getScreenShot(mContext));工具类:/** * 获取当前屏幕截图 */ public static Bitmap getScreenShot(Context context) { try { DisplayMetrics dm = context.getResources().getDisplayMetrics(); ..原创 2022-01-25 10:23:06 · 2850 阅读 · 0 评论 -
Git详解
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。原创 2021-12-09 17:02:46 · 156 阅读 · 0 评论 -
AndroidStudio不提示报错信息
解决方式1.AS升级后默认设置成了省电模式,设置成省电模式了的话,AS会禁掉很多辅助功能,达到省电的目的。所以代码自动提示、错误提示什么的也被禁掉了。关闭省电模式:File--->将Power Save Mode前面的勾√去掉2.你的android studio安装了Butter Knife的插件,打开File--->Setting--->Plugins--->找到ButterKnife--->鼠标右键-Uni...原创 2021-11-16 10:14:07 · 5686 阅读 · 1 评论 -
Android中WindowManger的层级分析
一. Window 分类应用 Window(ApplicationWindow: 对应一个 Acitivity) 子 Window (SubWindow:不能单独存在,需要依附在特定的父 Window 中,比如常见的一些 Dialog 就是一个子 Window) 系统 Window (SystemWindow:需要声明权限才能创建的 Window,比如 Toast 和系统状态栏都是系统 Window)二. Window层级Window 是分层的,每个 Window 都有对应的 z...原创 2021-09-08 15:24:06 · 2190 阅读 · 0 评论 -
Android SystemProperties简介
Systemproperties类在android.os下,但这个类是隐藏的, 上层程序开发无法直接使用。使用方法:在app-build.gradle文件中 android标签下,添加如下代码段android { ...... //以下是为了找到android.os.SystemProperties这个隐藏的类 String SDK_DIR = System.getenv("ANDROID_SDK_HOME") //("TAG", "SDK_DI.原创 2021-09-06 14:44:35 · 621 阅读 · 0 评论 -
Android自定义VideoView—实现app引导页播放视频欢迎效果
CustomVideoViewpackage com.lgl.mp4index;import android.content.Context;import android.media.MediaPlayer;import android.util.AttributeSet;import android.view.KeyEvent;import android.widget.VideoView;/** * 视频播放,主要是因为手机的大小很多,不能保证原生的VideoView能实现全屏原创 2021-08-25 14:51:50 · 701 阅读 · 0 评论 -
Context介绍
Activity,Service,Application都继承ContextContext可以实现哪些功能?弹出Toast、启动Activity、启动Service、发送广播、操作数据库等等等等都需要用到Context。由于Context的具体能力是由ContextImpl类去实现的,因此在绝大多数场景下,Activity、Service和Application这三种类型的Context都是可以通用的。不过有几种场景比较特殊,比如启动Activity,还有弹出Dialog。出于安.原创 2021-08-25 14:12:18 · 298 阅读 · 0 评论 -
Android实现全局返回(手机虚拟返回键)
/*** KeyCode:KeyEvent.KEYCODE_BACK,KeyEvent.KEYCODE_HOME,KeyEvent.KEYCODE_MENU*/public static void sendKeyEvent(final int KeyCode) { //必须在子线程中调用 new Thread() { public void run() { try { ..原创 2021-08-20 16:33:00 · 1267 阅读 · 0 评论 -
Android中View放大以及复原
效果图:放大1.5倍/* * view放大 * */ public static void startAnim(View view) { final AnimatorSet animatorSet = new AnimatorSet(); view.setPivotX(view.getWidth() / 2); view.setPivotY(view.getHeight() / 2); animat..原创 2021-07-26 14:19:04 · 1504 阅读 · 0 评论 -
Android使用第三方框架PickerView实现省市级三级联动
private List<String> mProvinceList = new ArrayList<>();private List<List<String>> mCityList = new ArrayList<>();private List<List<List<String>>&原创 2021-07-01 16:54:38 · 302 阅读 · 0 评论 -
Android获取在View上的Touch事件(滑动方向)
1. setOnTouchListenerView viewSlide = findViewById(R.id.view_slide); final float[] mStartX = {0}; final float[] mStartY = {0}; viewSlide.setOnTouchListener(new View.OnTouchListener() { @Override public boo原创 2021-03-30 16:39:42 · 761 阅读 · 0 评论 -
Android实现系统级全局的PopupWindow(随时弹出)
1. 清单文件声明权限<!-- 显示顶层浮窗 --> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>2. 全局的PopupWindow的布局文件(total_popup_window.xml) :<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="ht..原创 2021-03-29 14:25:04 · 2277 阅读 · 0 评论 -
Android端实现科大讯飞持续的语音监听
科大讯飞默认只提供单次的点击式语音监听解析,比较麻烦,所以需要我们手动实现,解放双手!持续监听需要做到两点:1.、 在讯飞自己检测到停止的回调中再次开启;/** * 听写监听器。 */ private RecognizerListener mRecognizerListener = new RecognizerListener() { @Override public void onBeginOfSpeech() { // 此回调表示:sdk内部录音机已经准备好了,用原创 2021-03-12 18:12:04 · 1914 阅读 · 0 评论 -
Android APK脱壳--腾讯乐固、360加固一键脱壳
现在使用Proguard进行混淆的代码,也很容易被破解,所以就出现了加固工具,让反编译的难度更大。但是有了加固技术,就会有反加固技术,正所谓道高一尺魔高一丈。经过加固后的apk,通过dex2jar反编译:腾讯乐固:360加固:从上面可以看出,经过加固后的apk,通过常规方法反编译无法获取到源码。下载工具1.脱壳工具FDex2:下载地址:https://pan.baidu.com/s/1_kqGx8oWea0m1991ClHtsQ 提取码: 8usj2.Virtu..原创 2020-07-06 09:09:50 · 1413 阅读 · 0 评论 -
Android反编译流程自用
1.反编译APK(apktool )cd 到apktool 目录下: cd C:\Users\Administrator\Desktop\jyr\android反编译三件套_\android反编译三件套 使用apktool反编译jar包,生成smali代码 : java -jar apktool_2.3.4.jar d -f test.apk -o vpn2.将smali代码转dex文件(smali.jar) cd到smali.jar目录下: cd C:\Users\A...原创 2020-08-13 09:43:10 · 176 阅读 · 0 评论 -
Android 将smali文件转为jar包
在我们用apktool反编译拿到apk的smali代码之后,这个时候如果需要将smali文件转成jar包的话,需要以下两个工具:1.smali.jar2.dex2jar-2.0下载地址:https://pan.baidu.com/s/1NJYTUpH_2kr3_KUfpvmcGQ提取码: 4i88下载完之后就可以进行操作了1.我们要将smali文件转成dex文件(1)打开cmd,首先进入当前文件夹位置:cdC:\Users\Administrator\Desktop\jyr...原创 2020-07-02 14:17:08 · 3468 阅读 · 0 评论 -
Android版本更新代码实现
//1.从后台获取版本信息实体 Version version = model.getModel(); //2.后台最新的版本号 int versionCode = Integer.valueOf(version.getVersionCode()); //3.当前版本< 后台最新版本 --> 更新 if (AppUtils.getVersionCode(getApplication()) < versionCode ) { ...原创 2020-06-23 16:06:13 · 1004 阅读 · 0 评论 -
Android抓包工具Fiddler的使用教程
在实际开发过程中,我们可以使用抓包工具方便我们测试。在这里向大家介绍一款主流的抓包工具Fiddler ,Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯。(代理相当于中介的意思,它可以监听到客户端与服务器之间的所有请求)我们就是用这款软件抓取 ,我们手机app访问的所有资源路径的。下面 我们拿实例 来演示下,怎么用fiddler 抓取数据。环境: win7准备工作:1.下载 Fiddler 这款软件 官网下载地址: ht...原创 2020-06-04 16:38:58 · 2801 阅读 · 0 评论 -
Android反编译工具jadx详细使用方法
反编译也不是什么新鲜的东西了。但是有时候为了保护我们自己项目的代码,我们还是要通过反编译工具来检测一下我们的代码是否是安全的。本文我们来使用一个开源的工具jadx来实现对apk文件的反编译。1.下载(1)jadx开源在github上了,我们可以直接去github上下载压缩包即可。这里我的环境是windows10。 打开连接,找到最新版本,直接下载zip文件后解压即可。 (2)也可以通过我提供的网盘直接下载 链接: 提取...原创 2020-06-04 11:25:37 · 3268 阅读 · 0 评论 -
Android中的反编译三件套 apktool 、dex2jar、jd-gui
1.下载三件套apktool 、dex2jar、jd-gui网盘下载链接: https://pan.baidu.com/s/1Akpwal29456mb7PD7LDF3A提取码: 4t8dapktool:简而言之就是获取资源文件,主要查看res文件下xml文件、AndroidManifest.xml和图片。(注意:如果直接解压.apk文件,xml文件打开全部是乱码)dex2jar:将apk反编译成Java源码(顾名思义dex2jar中的2意为to,也就是将classes.dex转化成原创 2020-06-03 18:00:09 · 939 阅读 · 0 评论 -
Android类似钉钉类的APP 实现禁止用户虚拟定位
参考:https://blog.youkuaiyun.com/mawei7510/article/details/80250416在应用开发中,如果有签到打卡之类的功能,我们肯定需要在项目中禁止用户开启虚拟定位,导致在***米之外的距离模拟定位然后进行了打卡操作!(一)首先:获取用户手机是否打开了 “允许模拟位置” 选项?其实很简单,这些设置项,基本都是写在数据库里,所以只要看看setting的源码(或者查看logcat可能也可以得到些有用的信息),就能知道该配置是写了数据库的哪个字段。boo..原创 2020-06-03 17:11:54 · 17775 阅读 · 3 评论 -
ScrollView问题(ScrollView中的LinearLayout的height属性match_parent 无效的解决办法)
在scrollview下的LinearLayout午发设置屏幕高度为全屏,解决方法:给ScrollView设置一个属性就可以解决了。android:fillViewport="true"原创 2019-12-05 14:06:51 · 923 阅读 · 0 评论 -
Android中activity跳转动画效果
(一)右进左出效果1.res-anim中添加文件(1)dialog_left_in.xml<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate androi...原创 2019-11-20 11:53:31 · 527 阅读 · 0 评论 -
Android面试题整理
1、java中==和equals和hashCode的区别(1)==是基本数据类型的比较(2)equals比较的是对象的内存地址,是object里的方法,例如string也重写了equals方法(3)hashCode也是Object类里的方法,返回一个int型的整数,(有一个生成hashCode值的公式)(4)equals里方法比较多,比较全面,复杂,因为效率较为低;(可靠);而h...原创 2019-11-18 17:10:01 · 294 阅读 · 0 评论 -
Android常用优秀开源框架整理
1.网络请求框架okhttpOkGo2.图片下载框架glidepicassoglide和picasso的对比: 加载一般图片 加载gif 图片质量细节 方法数 缓存 glide OK OK且显示动图 有锯齿 2678 根据ImageView尺寸,为不同尺寸缓存图片 picasso OK O...原创 2019-11-18 13:56:19 · 407 阅读 · 0 评论 -
Android中使用Filterable实现匹配搜索
接上文,上文地址:https://blog.youkuaiyun.com/JiYaRuo/article/details/82285711GitHup地址:https://github.com/JiYaRuo/LocalVagueSearchData1.SearchNeighbourActivity类/** * Created by JiYaRuo. * 好友搜索页面 */public...原创 2019-10-31 17:14:10 · 1303 阅读 · 0 评论 -
AndroidStudio 修改包名,修改Id,使相同的App多个同时存在手机
一、共需修改三处,先将项目由Project且换至Android,然后修改这三处(1)第一处第二处:点开buid.gradle(Mondle:app),修改ApplicationId另外可以在清单文件中修改一下app的名字,以及项目的BaseUrl,这样在手机中就可以做出区分啦!...原创 2019-10-23 13:13:40 · 1556 阅读 · 0 评论 -
Android中MD5加盐加密
private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; /** * 1.加密加盐调用的方法 * @param jmContent 加密内容 * @param jyCon...原创 2019-10-18 13:16:38 · 791 阅读 · 0 评论 -
Android计算两个时间的差值 差天时分秒
/** * 根据两个秒数 获取两个时间差 * */ public static String getDatePoor(long endDate, long nowDate) { long nd = 1000 * 24 * 60 * 60; long nh = 1000 * 60 * 60; long nm = 1000 ...原创 2019-10-15 16:23:59 · 3127 阅读 · 4 评论 -
Android中天时分秒实现倒计时
1.布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:...原创 2019-10-15 16:02:37 · 1065 阅读 · 0 评论 -
Android适配字体过大的手机(老年机)
在BaseActivity 中重写getResources()方法@Override public Resources getResources() { Resources res = super.getResources(); Configuration config = new Configuration(); config.set...原创 2019-10-12 13:36:27 · 885 阅读 · 0 评论 -
EditText限制输入的字符数并弹出Toast提示字数已达上限
一、效果图 : 这是一个输入框下边的0/200要根据用户输入的字数动态改变二 、布局 <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layo...原创 2018-05-03 17:45:42 · 865 阅读 · 2 评论 -
Android Studio无法连接夜神模拟器的解决办法
1. Win+R打开cmd命令工具2. 例如夜神模拟器的安装位置 :F:\AndroidAllAboutFTH\JyrAboutLife\夜神模拟器\Nox\bin 则输入 cdF:\AndroidAllAboutFTH\JyrAboutLife\夜神模拟器\Nox\bin 回车 进入夜神的安装目录 输入 f: 进入F盘3. 输入命令nox_adb.exe co...原创 2018-05-03 14:18:25 · 5436 阅读 · 2 评论 -
集合转换成String字符串
// 1. 定义一个String字符串String s="";// 2. 循环遍历集合取数据在字符串后追加for (int i = 0; i < mLists.size(); i++) { if (s=="") { s=mLists.get(i); }else { s=s+","+mLists.get(i); }}...原创 2018-05-03 14:12:56 · 1256 阅读 · 0 评论 -
Android中RecyclerView的侧滑菜单,侧滑删除item
一 . 准备工作AndroidStudio中添加依赖:RecyclerView的依赖:implementation 'com.android.support:recyclerview-v7:27.0.2'添加侧滑删除依赖:implementation 'com.yanzhenjie:recyclerview-swipe:1.1.4'二 . 布局布局中使用SwipeMenuRecyclerView&...原创 2018-05-03 14:54:48 · 2769 阅读 · 0 评论 -
Android中的Zxing实现二维码的生成以及扫描
参考博客 : https://blog.youkuaiyun.com/qq_23547831/article/details/520377101. 加入依赖:implementation 'cn.yipianfengye.android:zxing-library:2.2'2. 在BaseAppliaction中初始化ZXing : public class MyApplication extends App...原创 2018-03-23 18:25:12 · 788 阅读 · 0 评论 -
Android开发接入第三方原生SDK实现微信登录
微信开放平台 : https://open.weixin.qq.com/一、准备工作 : 1. Android Studio环境下:在build.gradle文件中,添加如下依赖即可:dependencies { implementation'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'}2. 在清单文件AndroidMan...原创 2018-03-10 18:18:19 · 5051 阅读 · 5 评论 -
Android开发接入第三方原生SDK实现QQ登录
首先我们梳理一下流程:1.对我们的应用进行授权,授权成功之后,拿到openid2.设置openid和token,就可以获取到用户的基本信息一、准备工作1.在腾讯开放平台上注册账号,注册应用,然后获取APPID和APPKEY (这个过程还是很简单的,只需要填一些基本的应用信息即可获取) 腾讯开发平台: http://open.qq.com/2. 下载SDK (http://wiki.ope...原创 2018-03-10 15:41:52 · 2803 阅读 · 0 评论