android
文章平均质量分 63
Geroff
入坑Android
展开
-
Windows Android Studio打开项目后,不显示任何窗口和菜单--问题小记
Android开发问题原创 2022-10-17 18:40:48 · 2050 阅读 · 0 评论 -
Android判断当前使用数据流量的是哪张卡
概述slotId是指卡槽,值从0开始,值按卡槽个数递增,例如卡槽一值为0,卡槽2为1,依次类推。subId是指数据库中sim卡id,值按插入的sim卡个数递增,每插入一张sim卡,subId加1。步骤:1.判断是否打开数据流量2.获取subId3.将subId转换为卡槽slotId示例代码import android.content.Context;import android.net.ConnectivityManager;import android.os.Build;impo原创 2021-12-08 17:07:34 · 2921 阅读 · 1 评论 -
Android 控件实现波纹效果
实现波纹效果两种方式一.通过设置控件theme和background(foreground)属性1.定义style <style name="Ripple"> <item name="android:colorControlHighlight">#D8D8D8</item> <!-- 指定点击时波纹的颜色--> <item name="android:radius">10dp</item> &l原创 2021-07-08 15:26:44 · 1712 阅读 · 0 评论 -
Android kotlin项目中集成ARouter
在kotlin集成时遇到了一些问题,记录一下,当前的ARouter版本为1.5.1ARouter github地址一.集成所有模块的build.gradle文件配置,除了在声明依赖的时候略微有点不同,其他都一样。1.引用‘kotlin-kapt’插件2.模块配置3.添加依赖// 1.引用‘kotlin-kapt’插件apply plugin: 'kotlin-kapt' // 2.模块配置,格式固定kapt { // 注意这里是在android域外部,而Java项目的话..原创 2021-05-18 18:37:31 · 381 阅读 · 0 评论 -
adb通过WiFi连接手机
前提条件,手机和电脑连接的是同一个wifi1.设置端口号首先,手机通过USB连接电脑,并给手机设置端口号:adb tcpip 6666出现如下提示,表示设置成功:restarting in TCP mode port: 66662.连接手机adb connect 手机ip:端口,例如:adb connect 192.168.51.242:6666出现如下提示,表示连接成功:connected to 192.168.51.242:6666端口是第1步设置的端口手机ip可通过原创 2020-07-09 15:12:52 · 2068 阅读 · 0 评论 -
初识DeepLink
前言最近项目涉及DeepLink,虽然平时有遇到过,但是并不知道这个术语,特意了解了下,还是比较少关注官方动态。。。文章内容大部分来自DeepLink的实现原理,说得很不错。什么是DeepLinkDeepLink:创建指向应用内容的深层链接,主要应用场景是通过Web页面直接调用Android原生app,并且把需要的参数通过Uri的形式,直接传递给app。例如:好友在微信中推荐某个京东产品,然后会有是否打开京东app的提示,当我们点击 ‘是’ 的时候就会自动跳转到京东app相关页面。原理实际上是原创 2020-06-19 17:27:50 · 717 阅读 · 0 评论 -
刷新了对Android Studio中gradle.properties的认知
原文AndroidStudio本地化配置gradle的buildToolsVersion和gradleBuildTools平时对这个文件也没太大关注,只是以前大佬把签名信息放这里,能用,也就学着这样搞,并不知道其中的原理什么的,无意中看到了AndroidStudio本地化配置gradle的buildToolsVersion和gradleBuildTools这篇文章,也算是明白了为啥可以这么做了。gradle.properties 两个非常有用的属性:1.在Android项目中的任何一个 build原创 2020-06-17 12:00:42 · 594 阅读 · 0 评论 -
Android混淆——解决与其它包包名冲突
问题最近,在第三方集成我们的aar的时候,出现混淆后的文件,与他们项目引入的其他包名字冲突了。解决方式默认情况下,混淆后的名字一般为a、b、c、d以及它们的组合。通过修改混淆规则,控制混淆后的文件命名规则,从根本上避免与其他包可能出现同名的问题。具体步骤是需要在混淆规则文件proguard-rules.pro中做如下设置:-obfuscationdictionary filename.txt-classobfuscationdictionary filename.txt-packageobfus原创 2020-05-14 11:48:03 · 6009 阅读 · 6 评论 -
Android原生分享图片和视频
前言由于之前的分享的平台都是固定的:微信,微信朋友圈,QQ,微博…分享的做法就是,用列表分别显示各个平台,然后点击某个选项跳转到对应平台代码如下:private void share(File file, boolean isImage) { Intent intent = new Intent(Intent.ACTION_SEND); if (Build.VERS...原创 2018-12-19 19:42:14 · 6463 阅读 · 6 评论 -
Android 日历实现简记
实现该界面,尝试过两种:1.改造ViewPager2.RecyclerView + 改造PagerSnapHelper这里最后用了第二种。尝试记录下,实现该界面的历程:第一种方法:这里曾试着解决三个问题:1).垂直滑动的ViewPager2).一个界面显示多页3).无限循环1).垂直滑动的ViewPager由于之前用ViewPager实现过一个界面显示多页的效果(...原创 2018-12-14 11:23:38 · 3430 阅读 · 0 评论 -
Android PendingIntent
问题在自己创建通知栏时,PendingIntent使用如下方式创建,requestCode固定;显示通知栏时,notify的Id不固定,如下:略...PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 120, intent, PendingIntent.FLAG_ONE_SHOT);略... manager...原创 2019-02-15 15:18:05 · 4176 阅读 · 0 评论 -
Firebase console 消息推送使用
如果单独推送给某个或某几个设备,选择红色框1;如果要推送所有符合2 定位相关的设备,则选择红色框2。原创 2018-12-08 14:11:27 · 2685 阅读 · 0 评论 -
Android还原混淆后的代码
转载自Android通过Mapping.txt还原混淆过后的代码如何恢复混淆过后的代码文件,这个时候需要用到mapping.txt文件。mapping文件:用来查看混淆前和混淆后的对比文件。一般用来查看线上的bug的log日志。mapping文件目录: Android Studio中模块的build\outputs\mapping\release。具体实现步骤:1.打开Android...转载 2019-07-10 20:00:58 · 4819 阅读 · 0 评论 -
Android 继承DialogFragment实现对话框
前言在重构项目UI时,由于需要重新改下对话框界面,然后期望效果图如下: 虽然简单,但是感觉很久都没动手写UI,差不多都忘了[尴尬],所以搞起来也是稍微耗了点时间,于是打算记录下。问题继承DialogFragment后,如果什么都不处理,则效果如下: 与期望的效果差别: 1.对话框顶部有白色块 2.对话框顶部有蓝色线条(部分5.0以下手机) 3.对话框左右边缘与屏幕边缘...原创 2018-08-29 19:11:26 · 1909 阅读 · 0 评论 -
Android 通过继承Dialog自定义Dialog使用注意事项
一、视图加载方式的区别给Dialog添加布局文件有两种方式:1.和Activity一样, 在onCreate中通过setContentView方法添加;2. 通过LayoutInflate添加,可在构造方法中添加。问题在项目某Activity中看到这样的代码:private CustomDialog mDialog;public void showDelDialog() { if...原创 2019-04-05 01:33:20 · 2638 阅读 · 1 评论 -
Dialog使用问题集
记录使用Dialog时出现的问题1.部分手机出现显示不全需求:横屏时右侧显示对话框,对话框高度占满高度原代码 Window window = getWindow(); if (window != null) { WindowManager.LayoutParams params = window.getAttributes(); ...原创 2019-04-10 11:59:38 · 426 阅读 · 0 评论 -
ThreadPoolExecutor中corePoolSize、maximumPoolSize及workQueue容量的关系
1.corePoolSize、maximumPoolSize关系ThreadPoolExecutor的构造方法如下: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliv...原创 2019-04-16 17:18:17 · 2249 阅读 · 0 评论 -
自定义View在OPPO R15的一些坑
在OPPO R15中,View的回调方法触发条件可能被修改,onMeasure和onLayout方法不仅在刚开始加载View时会调用,而且从界面回到桌面或任务列表后,再返回界面,会重新触发onMeasure和onLayout方法,而onSizeChanged方法不会重新触发。而在使用其它手机时,从界面回到桌面或任务列表后,再返回界面,并不会出现重新触发onMeasure和onLayout的方法。...原创 2019-05-17 11:14:44 · 366 阅读 · 0 评论 -
Android Camera小记
一. 使用Camera的方式调用系统相机自定义相机二. 调用系统相机1.调用系统相机,并返回缩略图 public static final int REQUEST_CODE = 0x001; private ImageView ivPic; @Override protected void onCreate(Bundle savedInstanceState...原创 2019-07-08 00:04:10 · 259 阅读 · 0 评论 -
Android项目开发中使用CMake进行JNI开发笔记
想弄个Demo进行JNI练习,由于使用的是之前创建的项目,且创建项目时,并没有包含C++,然后就回顾了Android笔记之使用CMake进行JNI开发(Android Studio)这篇文章。按着这个文章步骤做,以前是可以的,但是在编译时报了configrure Error,最后找到了Android studio 同步工程失败:External Native Build Issues: Error...原创 2019-08-02 22:29:55 · 752 阅读 · 0 评论 -
INSTALL_FAILED_USER_RESTRICTED错误
Android调试安装app时出现"INSTALL_FAILED_USER_RESTRICTED"解决方法转载 2018-01-02 17:42:54 · 1231 阅读 · 0 评论 -
Android推送集成——FCM推送
官方集成文档前言由于FCM是别的同事集成,后来自己接手以后,看了下官方集成文档,并没有手动集成过[给大佬递茶],因此并不打算说如何集成(集成过程按官方文档基本是没问题),而是主要讲讲遇到的问题。问题1.如何修改通知栏默认图标?由于FCM并没有像其它平台一样,将推送分透传和通知栏两种,因此,需要自己实现通知栏显示。 收到推送时,通知栏的图标显示有两种情况: 1.app打开...原创 2018-08-20 16:32:03 · 17053 阅读 · 4 评论 -
Android Studio中buildscript和allprojects的区别
用Android Studio新建Project的时候,在build.gradle中会生成如下的代码:buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3...原创 2018-08-03 17:18:42 · 7482 阅读 · 0 评论 -
Mob SMSSDK集成简记
进入Mob的Android的SMSSDK集成文档页面,按照集成文档说明集成即可。 注意: 集成文档中的appKey和appSecret需要替换成自己的。 关于appKey如何生成,可看http://bbs.mob.com/forum.php?mod=viewthread&tid=8212&extra=page%3D1,该链接在集成文档的开头,只是不明显。 就是忽略了这个...原创 2018-04-01 20:01:38 · 890 阅读 · 0 评论 -
Android动态加载Jar小记
前言虽然之前公司的项目有用到动态加载技术,但是并没有太在意,今天突然看到别人的app中有用到动态加载,打算了解一下。概述Android使用Dalvik虚拟机加载可执行程序,所以不能直接加载基于class的jar,而是需要将class转化为dex字节码,从而执行代码。优化后的字节码文件可以存在一个.jar中,只要其内部存放的是.dex即可使用。实验步骤Android St...原创 2018-03-20 12:40:58 · 2034 阅读 · 3 评论 -
Android Studio 报‘’java.lang.IllegalStateException: aidl is missing“解决方式
Android Studio新建Android项目时编译的时候提示 Error:Execution failed for task ':app:compileDebugAidl'.&gt; java.lang.IllegalStateException: aidl is missing搜了下,说是解决方法是compileSdkVersion和buildToolsVersion不一致,修改...原创 2018-03-10 13:42:14 · 3075 阅读 · 0 评论 -
Android之AIDL跨进程通信——IPC机制(二)
本文主要记录Android Studio下AIDL的实现流程一、服务端实现1.创建Book类 Book类在包名对应根目录下(这里包名为com.example.lgf.aidl),否则会有问题,Book类在AIDL中用到,因此要实现Parcelable接口,代码如下:package com.example.lgf.aidl;import android.os.Parcel;imp原创 2018-01-24 13:58:08 · 186 阅读 · 0 评论 -
Android跨进程通信—IPC机制(一)
本文摘抄自–Android开发艺术探索简介IPC是Inter-Process Communication的缩写,含义为进程间通信或跨进程通信,是指两个进程之间进行数据交换的过程。 进程与线程 线程: CPU调度的最小单元,同时线程是一种有限的系统资源。 进程: 一个执行单元,在PC和移动设备上指一个程序或一个应用。 一个进程可以包括多个线程。开启多进程原创 2018-01-23 18:32:24 · 218 阅读 · 0 评论 -
Android性能测试——TraceView(Android Device Monitor)
Android TraceView使用转载 2017-12-26 16:08:55 · 651 阅读 · 0 评论 -
Android中跳转到系统一些设置界面的方法
1.跳转到系统的辅助功能界面 Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivity(intent);2. 跳转到添加帐户界面 Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT); ...原创 2017-12-06 00:26:55 · 7858 阅读 · 2 评论 -
IntentFilter的匹配规则
Intent中action,data,category过滤规则原创 2017-11-13 23:33:15 · 179 阅读 · 0 评论 -
Android中adb shell dumpsys相关命令
adb shell dumpsys相关命令原创 2017-12-14 00:09:45 · 27794 阅读 · 0 评论 -
Activity的生命周期
Activity生命周期原创 2017-11-11 15:40:46 · 287 阅读 · 0 评论 -
Drawable系列简记
前言慕课网Android中的各种Drawable笔记Drawable1.Drawable是一个抽象类,是对可绘制物件的抽象。与View的区别是:没有事件和交互方法。 其子类有BitmapDrawable、LayerDrawable、StateListDrawable、ClipDrawable、TransitionDrawable、InsetDrawable。BitmapDra...原创 2018-04-14 13:32:54 · 226 阅读 · 0 评论 -
Android Studio 添加jar或aar依赖的两种方式
这里假设jar和aar都放到module的libs目录下.方式一在module目录下的build.gradle的dependencies中,添加implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')此种方式简单粗暴,但是不允许同时出现同一模块不同编译类型的jar(或aar), 例如,如果libs同...原创 2018-04-18 14:39:07 · 65090 阅读 · 6 评论 -
Android 8.0通知栏适配
最近在原生8.1手机安装app遇到了个崩溃,排查了下原因发现是通知栏没有兼容8.0版本导致的。 8.0前后版本的区别,主要是8.0以后在构建Notification.Builder的对象时,需要在构造方法中传入一个channelId参数,而这个channelId对应的渠道需要在创建Builder之前创建,这里简单做个兼容,只截取关键代码,代码如下: private static final ...原创 2018-07-19 16:38:35 · 977 阅读 · 0 评论 -
Android推送集成——极光推送
【前言】写这篇文章的目的:验证极光集成文档中jcenter 自动集成步骤是否需要配置AndroidManifest.xml(公司项目中的集成方式使用自动集成还配置了AndroidManifest.xml,懵逼了。。。)【集成步骤】先附上极光推送AndroidSDK集成指南jcenter 自动集成步骤 说明 : 1.使用jcenter自动集成的开发者,不需要在...原创 2018-07-07 13:43:17 · 720 阅读 · 0 评论 -
Android——安装APK错误 Failure [INSTALL_CANCELED_BY_USER]
今天想测测小米推送,然后借同事手机来测试,结果Studio一直报 Failure [INSTALL_CANCELED_BY_USER]。不管怎么插拔USB,怎么重启Studio和手机都没用,后来搜了下,看了十六、安装APK错误 Failure [INSTALL_CANCELED_BY_USER]这篇文章,原来是手机上的安装权限问题。面对MI设备相同的问题,并通过以下步骤来解决问题:小米手机...原创 2018-07-07 13:00:40 · 1254 阅读 · 0 评论 -
Android Studio中gradle工程相关配置
一.添加aar依赖 1.在模块的根目录下(src同级)添加libs目录,然后添加对应的aar,如下图: 2.在模块的build.gradle文件中,添加如下代码:android { ...此处省略}// 指定aar目录repositories { flatDir{ dirs 'libs' }}dependencies { .....原创 2018-07-13 14:40:38 · 422 阅读 · 0 评论 -
Android设置Activity透明背景样式
给Activity指定主题样式时,如果activity继承AppCompatActivity,则必须指定theme为Theme.AppCompat或者其子类,否则会报错。首先,不设置布局文件背景颜色或者设置背景颜色为透明; 其次,在styles.xml文件中添加如下样式,可根据情况设置所需属性,但是,android:windowBackground和android:windowIsTrans...原创 2018-07-17 14:24:26 · 14854 阅读 · 3 评论