android
yinianjian2017
每天学习一点点,积累一点点,进步一点点!
展开
-
App 组件化 多渠道打包 BuildConfig 全局配置(子模块获取)
方法一、Application 全局配置主项目 build gradle 中多渠道配置对应字段productFlavors {Test{buildConfigField "String", "FRANCHISEE", "test"}}build 项目 会自动生成 BuildConfig.java在 Application 中配置全局变量,并指向 BuildConfig.FRANCHISEE方法二、主项目 build gradle 中多渠道占位符设置produ原创 2022-03-25 16:02:07 · 3131 阅读 · 0 评论 -
No version of NDK matched the requested version 异常处理
1、编译demo显示一下异常No version of NDK matched the requested version 21.0.6113669. Versions available locally: 20.1.5948944, 22.1.7171670, 23.1.77796202、指定当前有效的版本build.gradle 中增加android 标签中ndkVersion '22.1.7171670'再次运行项目,问题解决...原创 2022-03-04 11:36:03 · 3279 阅读 · 0 评论 -
Zxing扫码默认为横屏改竖屏实现
修竖屏时,zxing版本 3.4.11、指定activity为竖屏android:screenOrientation="portrait"2、DecodeHandler 中,在decode(byte[] data, int width, int height)方法中,增加以下代码byte[] rotatedData = new byte[data.length];for (int y = 0; y < height; y++) { for (int x = 0; x <原创 2022-02-07 17:38:02 · 2575 阅读 · 0 评论 -
ConstraintLayout 中 Button 位于模糊页面progressBar 之上解决方法
利用下述方法指定progressBar:app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent如:<RelativeLayout...原创 2021-11-08 12:13:41 · 1918 阅读 · 0 评论 -
IDEA 编译解决控制台输出中文乱码
1、找到 IDEA bin文件 中配置文件 idea.exe.vmoptions 和 idea64.exe.vmoptions 。2、配置文件中增加 -Dfile.encoding=UTF-8 。3、Settings 中设置编码格式。4、重启IDEA。...原创 2020-03-05 10:43:09 · 767 阅读 · 0 评论 -
IllegalArgumentException: Service Intent must be explicit
项目进行中,今天突然报这个异常当然这是5.0后绑定服务必须使用显性,但奇怪为什么突然出现后发现自己手欠,把主配置文件中android:targetSdkVersion="19" 改成了 23改回来,问题消失。当然可以实现显性和隐性之间的转换。百度很多的。特此记录下原创 2017-07-04 17:23:12 · 211 阅读 · 0 评论 -
百度定位:定位自己位置,并显示在地图上
废话不说,代码上:import org.xutils.x;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.Location原创 2017-07-04 17:26:09 · 1186 阅读 · 0 评论 -
android studio 同一应用多次安装并不覆盖方法
首先可以明确,不需要更改包结构。1、在主配置文件中修改package属性值2、导入R文件的地方,导入package属性值加.R3、在build.gradle中修改applicationId属性,修改和package属性一直,这个是应用的唯一标识,相同时,应用会覆盖安装。4、安装,发现多出一个一样的应用。原创 2017-07-13 17:08:59 · 3525 阅读 · 0 评论 -
内容显示在系统窗口、状态栏之下问题
刚接手一个写了一半的项目,头大啊。写了个activity,布局文件,显示后发现,布局文件从状态栏就开始计算位置了,导致内容被状态栏覆盖。当然,简单粗暴,直接隐藏状态栏可以之后就是 android:fitsSystemWindows 这个属性设置为true时,系统会绘制出状态栏框,防止覆盖。false时,则会覆盖。添加这个属性后,问题解决。原创 2017-06-15 15:09:02 · 513 阅读 · 0 评论 -
集成百度地图、百度Logo、标尺、缩放控件的显示和隐藏
直接上代码 View child = mMapView.getChildAt(1);if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) {child.setVisibility(View.INVISIBLE);//Logo 隐藏}mMapVi原创 2017-07-20 15:49:28 · 1246 阅读 · 0 评论 -
字符串中转义实现
好多字符串,含有需要转义字符比如给字符串赋值内容中包含双分号时,需要转义转义,只需要在需要转义的分号前加 \ 即可特此记录。原创 2017-07-26 10:22:33 · 782 阅读 · 0 评论 -
设置状态栏和应用颜色统一时,重叠
需要在布局文件中添加:android:fitsSystemWindows="true"xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" andro原创 2017-08-24 19:59:42 · 537 阅读 · 0 评论 -
百度地图,在fragment中嵌套使用MapView时,切换后出现黑屏
是由于地图渲染导致在onPause()时,将MapView是指为不显示在onResume() 时, 将MapView是指为显示这个是百度SDK自带的bug,不能从根本解决问题,可以做适当优化,让黑屏不可见。原创 2017-07-04 15:34:28 · 1032 阅读 · 0 评论 -
android 图片旋转处理
在用到拍照功能时,有时候拍照方向为反向,需要检测需要旋转角度,并正确显示图片1、检测需要旋转的角度2、旋转图片代码:import java.io.IOException;import android.graphics.Bitmap;import android.graphics.Matrix;import android.media.ExifInterfac原创 2017-06-23 17:08:57 · 407 阅读 · 0 评论 -
AndroidStudio 配置NDK开发环境,SDKManager下没有SDK问题
今天开始配置NDK开发环境根据需要配置NDK、CMake、LLDB。尝试自己下载NDK,指定NDK目录,发现编译又找不到CMake,之后果断放弃。尝试找SDKManager 先没有这几项的原因。最后发现 File--Setting--Appearance&Behavior--System Settings--Http Proxy下,选择了Manual proxy configura原创 2017-06-23 16:06:06 · 1839 阅读 · 0 评论 -
android studio Rendering Problems Missing styles错误解决
新建一个项目,在预览布局文件时候,出现这个错误。运行到手机上,发现布局很小解决方法:在布局预览界面,点击AppTheme按钮,选择一个默认样式即可。原创 2017-07-12 14:42:07 · 451 阅读 · 0 评论 -
线性布局键盘覆盖EditText问题
更改activity中windowSoftInputMode方式代码:在主配置文件中,注册activity时候,增加:android:windowSoftInputMode="stateHidden|adjustPan" 在EditText获取焦点时,就会移动窗口,使输入内容可见!原创 2017-06-20 14:32:56 · 340 阅读 · 0 评论 -
android USB连接电脑只充电问题
有以下几方面需要排除:1、开发者选项中,开启USB调试。2、开发者选项中,选择USB配置,可以看到选择的是充电、MTP、PTP等。3、电脑是否USB驱动有问题,可更换电脑验证。4、数据线、和USB插口时候有问题。5、尝试电脑背部USB插口。常规排查后,发现我的手机还是不行,连接不上。在点了一上午后,发现原来是自己手欠,在SystemUi的下来菜单中,选择了勿扰模式,NN原创 2017-06-08 13:54:17 · 11495 阅读 · 0 评论 -
android 自定义圆形图片实现
自定义ImageView,在绘制时获取需要绘制图片的宽和高,取图片正中正方形区域,之后绘制圆,填充圆内部,实现功能。直接上代码:package 替换自己包名import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;im原创 2017-06-19 15:56:39 · 338 阅读 · 0 评论 -
android 模糊查找,并标红关键字实现
1、获取所有数据源;2、获取关键字,并比较是否包含关键字;3、包含时,添加到需要小时的数据中,查找完成后,通知adapter更新显示。上代码:1、位listview添加TextWatcher监听,在输入完成后,获取关键字。@Overridepublic void afterTextChanged(Editable arg0) {// TODO Auto-generate原创 2017-06-16 10:23:37 · 2348 阅读 · 0 评论 -
android点击任意非EditText区域,隐藏键盘
事件分发机制:在获取事件分发时,获取当前获得焦点的View,之后判断当前View类型,是否为EfitText,是则不管,不是则隐藏键盘。直接将代码添加到BaseActivity即可:@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTIO原创 2017-06-16 10:16:57 · 439 阅读 · 0 评论 -
查看应用SHA1值
一、读取apk中SHA11、将应用 test.apk 重命名为 test.rar (test 为应用名称)2、解压文件,取出CERT.RSA3、cmd 到CERT.RSA 路径下执行 keytool -printcert -file CERT.RSA4、查看SHA1值二、读取自定义KeyStore 的SHA11、cmd 到自定义 .jks文件下2、执行 keytool原创 2017-11-29 17:53:05 · 1833 阅读 · 0 评论 -
android studio 升级3.0
1、下载3.0版本,下载地址:http://www.android-studio.org/2、替换安装3、根据提示更新SDK以及插件原创 2017-12-12 14:51:16 · 398 阅读 · 0 评论 -
double 科学计数法转字符串
1、double a = 0.00000001;2、new BigDecimal(String.valueOf(a)).toPlainString(); 注意: 实列 BigDecimal 时,需要字符串。原创 2019-02-18 18:12:14 · 1776 阅读 · 0 评论 -
关于位运算 >> 8 & 0xFF 梳理,以及数据大小端问题
>> 右移0xFF : 0000 0000 0000 0000 0000 0000 1111 1111& 0xFF 作用,只取出当前低(最右面)8位,其他位补0>> 右移 8 位,之后 & 0xFF ,则是取出未移位前数高 8位(当前数最右面的8位)的数值大小端大端: 高位数据放在低位内存中,读取数据类似字符串 拿十进制举例 :...原创 2018-11-19 15:15:54 · 12694 阅读 · 1 评论 -
Exception 堆栈信息打印
异常打印: try{your code}catch(Exception e){StackTraceElement[] stackElements = e.getStackTrace(); if(stackElements != null){ for (int i = 0; i < stackElements.le...原创 2018-09-20 11:33:46 · 2376 阅读 · 0 评论 -
Intent传递对象时,部分变量变为默认值分析
问题描述:在Intent传递对象后,发现部分变量变为默认值。问题分析:查看该对象,发现该对象序列化了,但是父类未序列化,导致父类的变量变为默认值。解决方法:修改父类,序列化后直接崩溃因为父类中存在其他未序列化的 变量对象。全部对象序列化后,问题解决。...原创 2018-09-06 18:47:38 · 362 阅读 · 0 评论 -
构造函数与变量加载顺序引起的问题分析
在初始化类时,在父类方法中对子类变量赋值,之后走完父类构造方法后,在完成子类构造方法时,打印该变量仍为默认值。由于初始化变量时,给了变量一个默认值,加载顺序为构造函数、变量,导致在构造函数中赋值后,加载变量时再次赋为默认值。解决 方法:1、不给变量默认值。2、添加static关键子,让变量优先与构造函数加载。 代码:public abstract class Base...原创 2018-09-06 18:44:43 · 542 阅读 · 0 评论 -
Error:Cannot read packageName from
今天android studio 编译发现这个错误,记录下原因:错误:Error:Cannot read packageName from F:\studio_projects\NLSandTranslate\mnls\src\main\AndroidManifest.顾名思义,找不到包名查看为项目中包含多个module,编译时未选中主module,导致无法找到修改后:真是疏忽大意,有时主配置文件...原创 2018-04-28 11:33:06 · 9581 阅读 · 1 评论 -
android studio Aapt2Exception
1、打开gradle.properties文件2、增加:android.enableAapt2=false3、同步编译,即可解决。原创 2018-04-24 18:26:49 · 180 阅读 · 0 评论 -
安卓查看应用CPU以及内存消耗
1、adb shell2、top -m 5 -s cpu // 前5个CPU消耗较多应用排名, 5可以更改啊为其他整数型。3、窗口显示内容原创 2018-04-22 13:40:30 · 3368 阅读 · 0 评论 -
SM2 加解密注意事项
SM2 加解密联调时走过的坑1、密文数据,有些加密硬件出来密文结构为 C1|C2|C3 ,有些为 C1|C3|C2 , 需要对应密文结构做解密操作2、有些加密硬件,公钥前加04 ,私钥前加00,密文前加04 ,在处理时候,可以根据长度处理,尤其 04 的处理。基于bouncycastle 软实现加解密网上资料较多,不再阐述。目前可以实现加密硬件和软实现互通,再有新问题继续更新。...原创 2018-04-11 15:17:07 · 19965 阅读 · 8 评论 -
SM2 原文签名与HASH签名实现区别
原文签名1、Z值计算:public static final String ecc_a = "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC";public static final String ecc_b = "28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DD...原创 2018-04-11 15:02:31 · 7752 阅读 · 1 评论 -
输出Log到文件、中文乱码、BIN文件、TXT文件
1、初始化目录:public void init() { logPath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "aa"; Log.d(TAG, "logPath : " + logPath); File file = new File(logPath...原创 2018-04-11 12:47:02 · 1171 阅读 · 0 评论 -
android studio SDK 打包时,不将依赖三方jar包打入SDK中方法
在打包SDK时,会有三方jar包引入,不想打入SDK中方法1、修改compile fileTree(include: ['*.jar'], dir: 'libs')为:compile fileTree(include: ['*.jar'], dir: 'sdk')2、不需要打入SDK的三方jar包前使用providedprovided files('libs/gson-2.7.jar')3、上篇已...原创 2018-04-11 11:00:20 · 3454 阅读 · 4 评论 -
android studio 生成jar包方法
1、build.gradle 文件中增加 makeJartask makeJar(type: Copy) { //删除存在的 delete 'build/libs/xindun.jar' //设置拷贝的文件 from('build/intermediates/bundles/release/') //打进jar包后的文件目录 into('build/...原创 2018-03-12 13:58:39 · 277 阅读 · 0 评论 -
SDK 不混淆内部接
1、不混淆本类下public的接口-keep class com.csizg.security.XXA{ public *;}2、不混淆该类下的接口-keep public interface com.csizg.security.XXA$SupportCallBack{ public *; }3、保护泛型-keepattributes InnerClasses,Signature4 ...原创 2018-03-12 13:52:24 · 868 阅读 · 0 评论 -
android studio 3.0 Execution failed for task ':app:transformClassesAndResourcesWithProguardForXXX'
这个是因为警告太多,需要处理在混淆文件中添加:-ignorewarnings即可解决。这句是屏蔽警告处理。原创 2017-12-12 15:02:06 · 437 阅读 · 0 评论 -
android studio3.0 编译 Cannot set the value of read-only property 'outputFile' for apkVariantOutputImp
修改方式:原build.gradle中:variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { def fileName if (var原创 2017-12-12 14:54:51 · 2275 阅读 · 0 评论 -
android studio adb.ext 已停止工作解决
直接来解决步骤1、进cmd,输入netstat -ano | findstr "5037" 查看占用5037的进程2、发现2480占用,查找进程输入 tasklist | findstr "2480"3、关掉输入: taskkill /f /t /im PPAdbServer.exe成功后,android studio 重新编译项原创 2017-05-10 16:59:04 · 3468 阅读 · 0 评论