android
yanjingtp
1111111
展开
-
Android 混淆基本配置
#代码混淆压缩比,在0~7之间,默认为5,一般不做修改-optimizationpasses 5#混合时不使用大小写混合,混合后的类名为小写-dontusemixedcaseclassnames#指定不去忽略非公共库的类-dontskipnonpubliclibraryclasses#这句话能够使我们的项目混淆后产生映射文件#包含有类名->混淆后类名的映射关系-ver...原创 2018-09-25 13:46:01 · 514 阅读 · 0 评论 -
android 混淆打包去除log输出
1、先将app的build.gradle中的minifyEnabled设置为ture,然后将proguard-android.txt修改为proguard-android-optimize.txt,因为proguard-android.txt 默认不优化,而proguard-android-optimize.txt是优化的2、使用assumenosideeffects配置proguard-...原创 2018-09-25 13:51:51 · 3658 阅读 · 0 评论 -
Android Studio查看代码编辑历史
Android Studio 提供了一个功能,可以很好的查看近期代码的编辑历史,步骤如下:选中需要查看的项目或者是文件---->右键选择Local History----->选择show history...原创 2018-09-12 14:04:50 · 6313 阅读 · 0 评论 -
Android Studio 中 try catch快捷键
Android Studio 中 try catch快捷键是Ctrl+Alt+T原创 2018-08-21 14:51:17 · 1209 阅读 · 0 评论 -
QQ分享成功回调始终走onCancle
QQ分享到好友或者空间已经成功,但是回调始终都onCancel,发现是AndroidManifest.xml中配置问题,解决方法:<data android:scheme="tencent + appid" />原创 2018-08-15 15:40:28 · 1240 阅读 · 0 评论 -
kotlin中EditText赋值Type mismatch
在kotlin中可以不用使用findViewById来初始化控件,但是在给EditText赋值时使用editText.text = "value"时会提示Type mismatch,这是因为EditText在推断types时出现问题。为了避免types不匹配,使用Editable类的Factory内部类,来解决这个问题。etStartTime.text = Editable....原创 2018-08-03 10:40:02 · 8127 阅读 · 5 评论 -
解决Android Studio 导包失效或无法自动导包
当Android Studio 导包失效或无法自动导包时,只需清理Android Studio的缓存即可选择工具栏 File --> Invalidate Caches /Restart... -> Invalidate and Restart 重启Android studio...原创 2018-08-02 14:23:34 · 8088 阅读 · 0 评论 -
EventBus报错:its super classes have no public methods with the @Subscribe annotation
使用EventBus时会出现its super classes have no public methods with the @Subscribe annotation,在源码中可以看到是因为1、没有注解,2、反射得到为空 可以通过以下方式解决:1、在回调方法没有添加注解,添加注解即可2、因为混淆问题导致,在proguard-rules.pro中添加保留-keepa...原创 2018-09-25 15:55:36 · 22325 阅读 · 9 评论 -
Android单元测试中AndroidJUnit4获取context
在AndroidJUnit4直接通过getContext()获取到的context并不是当前APP的context,而是instrumentation的context,应使用以下方法来获取context。InstrumentationRegistry.getInstrumentation().targetContext或者InstrumentationRegistry.getTar...原创 2018-10-08 17:40:20 · 9353 阅读 · 0 评论 -
bugly Tinker 使用 Instant Run
在接入bugly使用Instant Run的时候会报:Tinker does not support instant run mode, please trigger build by assembleDebug or disable instant run in 'File->Settings...'. 这个时候可以将bugly临时关闭,方法如下: 1、设置 t...原创 2018-11-21 11:08:10 · 393 阅读 · 0 评论 -
RecyclerView的万能分割线--kotlin
package com.example.admin.recyclerviewhorizontaltestimport android.content.Contextimport android.graphics.Canvasimport android.graphics.Paintimport android.graphics.Rectimport android.graphics....原创 2018-12-06 11:55:27 · 1585 阅读 · 0 评论 -
Flutter 提示报错 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
提示报错如下图,则需要将flutter.gradle修改如下图 repositories { google() // jcenter() maven{ url 'https://maven.aliyun.com/repository/jcenter' } maven{ ...原创 2019-04-21 14:54:11 · 6845 阅读 · 0 评论 -
Android studio 连接Genymotion
1、打开setting,选择Plugins,打开Browse repositoris2、安装Genymotion插件,然后重启AS3、关联Genymotion目录,打开setting,选择Other Settings,选择Genymotion,然后选择Genymotion所在的目录,然后点击OK就行了转载 2018-01-24 11:13:30 · 2552 阅读 · 0 评论 -
手动签名apk
jarsigner -verbose -keystore key绝对路径 -signedjar 生成的apk名字 需要签名的apk 别名 -storepass 密码原创 2018-07-28 18:06:34 · 409 阅读 · 0 评论 -
Api level 22(android 5.1)后使用过时的HttpClient
在Api level 22(android 5.1)后,Google官方废弃了HttpClient,若是想在项目中继续使用,则需要在app下的build.gradle中的android中添加:useLibrary 'org.apache.http.legacy'android{...useLibrary 'org.apache.http.legacy'} ...原创 2018-07-05 17:01:18 · 913 阅读 · 0 评论 -
替换jar中包名
最近因工作需要,需要将jar中的包名替换为自己需要的包名,使用到了一个开源的工具https://code.google.com/archive/p/jarjar/downloadscsdn下载:http://download.csdn.net/download/yanjingtp/102352081、在cmd中执行以下命令,可以看到帮助信息java jar jarjar.jar原创 2018-02-01 14:13:54 · 2726 阅读 · 0 评论 -
Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activit
在Context中有一个startActivity()方法,在activity中使用startActivity()方法时是没有任何问题的,这是因为activity继承自Context,并且重载了startActivity()方法。但是在Context中直接使用startActivity()方法时会报: Caused by: android.util.AndroidRuntimeException:原创 2018-02-06 10:55:41 · 1330 阅读 · 0 评论 -
手动打包Apk
最近有手动打包apk的需求,因此研究了一下,主要分为以下7步:1、使用aapt生成R.java文件2、使用javac编译java源文件成为class文件3、使用dx将class文件编译为dex文件4、使用aapt生成resources.ap_资源包文件5、使用sdklib.jar打包生成未签名apk6、使用jarsigner签名apk7、使用zipalign对apk进行原创 2018-01-26 11:08:55 · 951 阅读 · 0 评论 -
Android studio 自动导包
一、Android studio 的导单个包的快捷键是Alt+Enter;二、Android studio 可以设置自动导包:File -->Setting-->Editor-->General-->Auto Import ,勾选以下两项原创 2018-01-29 10:27:35 · 24678 阅读 · 0 评论 -
jarsigner签名apk常见问题
使用jarsigner签名apk常见问题:1、错误提示:jarsigner: 找不到xx的证书链。xx必须引用包含私有密钥和相应的公共密钥证书链的有效密钥库密钥条目。解决方法:签名文件的Alias写错了,更正就可。转载 2018-01-16 18:09:37 · 2468 阅读 · 0 评论 -
GridView长按短按冲突
在项目中为GridView设置长按和短按监听时,会出现短按正常,但是长按时会先执行长按,然后再执行短按,这就造成了长按时与短按监听冲突。查看OnItemLongClickListener的源码/** * Callback method to be invoked when an item in this view has been * clicked and原创 2017-07-30 19:23:46 · 372 阅读 · 0 评论 -
AlertDialog点击按钮后不消失
在Android中点击dialog中的确定或者取消时,就是不调用dismiss()方法,dialog还是会消失,那要是我们要在点击后处理一些逻辑,就希望点击后不消失,可以按以下方式做。 //添加数据 btnAdd.setOnClickListener(new View.OnClickListener() { @Override原创 2017-07-30 17:07:42 · 3029 阅读 · 0 评论 -
Android 中EditText的密码明文与密文显示
对EditText的密码明文与密文在代码中设置,十分简单。代码如下: //明文显示 editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); //密文显示 editText.setTransformationMet原创 2017-07-08 18:23:15 · 2634 阅读 · 0 评论 -
Error:No resource found that matches the given name (at 'icon' with value '@mipmap/ic_launcher.9').
在Android Studio 中遇到了No resource found that matches the given name(at 'icon' with value '@mipmap/ic_launcher.9')的错误,想到'icon'都是在Manifest,然后去Manifest中查看。将错误的修改即可。原创 2017-06-25 18:14:28 · 2519 阅读 · 4 评论 -
android 多渠道打包
在Android Studio中使用gradle多渠道打包是十分方便的。一、在app的build.gradle中配置productFlavors即可:android{...... productFlavors { xiaomi {} baidu{} } productFlavors.all{ flavor -> ...原创 2018-03-09 10:39:25 · 195 阅读 · 0 评论 -
Android 图片验证码
import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import java.util.Random;public class CodeUtils { private static fin...原创 2018-03-13 15:32:00 · 785 阅读 · 0 评论 -
Android Studio 修改包名
在Android Studio中修改包名,只需要修改两个地方:AndroidManifest.xml 及build.gradle(app下)。 一、在AndroidManifest.xml中,选中需要修改的包名(需要修改包名的哪个字段就选中哪个字段),按Shift+F6选中rename package,然后修改即可。二、在build.gradle中修改applicationId为需要...原创 2018-04-07 16:24:55 · 276 阅读 · 0 评论 -
Android全面屏适配
1、在AndroidMainfest.xml中application中显式声明支持的最大屏幕高宽比(maximum aspect ratio),目前全面屏屏幕比例,将value设置为2.1即可适配一众全面屏手机 <meta-data android:name="android.max_aspect" android:value="2.1"...原创 2018-07-23 15:41:26 · 780 阅读 · 0 评论 -
根据模块分类Android Studio中的res文件
在项目中,若是资源文件类别特别多,管理起来特别麻烦,可以通过gradle将各个类别的res拆分。 1、将原有的res文件备份; 2、在系统资源管理器中创建文件夹,不要在AS中创建,结构类似如下: 3、将原有res的AS目录放到指定类别的目录下,各个类别下的目录结构保持res原有的目录结构,如下: 4、在app的build.gradle中的androi...原创 2018-06-09 13:48:10 · 4753 阅读 · 0 评论 -
Android Studio 生成自定义apk、aar名称
在Android studio中默认生成的apk、aar的名称都是app-release.apk、app-debug.apk、app-release.aar、app-debug.aar。通过修改app下的build.gradle可以自定义生成的apk、aar名称一、自定义apk的名字 在android{}里添加代码,即可设置apk名字android.applicationVariants.a...原创 2018-06-07 11:01:01 · 6610 阅读 · 2 评论 -
Android Studio 使用Gradle替换AndroidManifest.xml中指定内容
在android{}里添加代码,然后clean即可 一、aarproductFlavors { "com.yxl.paopao" {} //修改为的值 } android.libraryVariants.all { variant -> variant.outputs[0].processManifest.doLast {...原创 2018-06-13 11:33:00 · 6219 阅读 · 0 评论 -
Android计算时间差
java代码: try { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = df.parse("2018-01-01 12:10:10"); Date endTime = df.parse("2018-...原创 2018-06-11 13:36:05 · 7102 阅读 · 1 评论 -
Android 权限列表
访问登记属性android.permission.ACCESS_CHECKIN_PROPERTIES,读取或写入登记check-in数据库属性表的权限获取错略位置android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米获取精确位置android.permissio...原创 2018-05-08 17:56:32 · 181 阅读 · 0 评论 -
Unity打包屏蔽android权限弹窗
在Android6.0以后,权限的申请是需要弹窗,在Unity打包时只需在AndroidManifest.xml中添加<application> <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" /></application>这样就可以屏蔽...原创 2018-05-08 13:12:42 · 4546 阅读 · 0 评论 -
Android Studio 一键展开或收起代码
在Android Studio(包括所有JetBrains的IDE),使用Ctrl Shift +或-,就可以展开或收起全部代码。Ctrl + 或 - 对当前方法展开或者收起。原创 2018-05-07 15:35:52 · 16858 阅读 · 3 评论 -
Win10 中Android Studio Ctrl+空格冲突解决
在win10中Ctrl+空格被系统默认定义为中英文切换,通过修改控制面板中语言设置中的语言热键,但是每次重启系统又会恢复Ctrl+空格为中英文切换。 通过修改注册表可以一劳永逸的解决这个问题:在HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys中,将00000010项中的Key Modifiers、Virtual Key数据的前...原创 2018-03-27 13:47:58 · 1242 阅读 · 0 评论 -
Android 中的倒计时 CountDownTimer
在Android中系统提供了一个倒计时的类,CountDownTimer,使用也十分简单,import android.os.CountDownTimer;import android.widget.Button;/** * Created by YanJing on 2015/12/10/0010. */public class TimeCount extends CountDownTim原创 2017-06-25 16:52:57 · 306 阅读 · 0 评论