日常总结(不定期)

某日,在群里面日常潜水,看到他们在探讨一些问题的时候,很是感慨,竟然能够忽然这么氛围浓厚… …
于是,一种写点什么的感觉油然而生。

在AS中导入.so文件

情景:
群里L兄换工作,面试问题:(大概)如何导入.so文件,使用哪几种so库就可以兼容全部机型?
群里W兄给了如下链接
原文

  • 在Moudle根目录创建lids文件夹;
  • 将.so文件放入其内;
  • 在build.gradle配置如下:
sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}
  • 关于兼容
    群里L兄说:“so的兼容 正常来说是7中cpu架构 考虑到app体积 一般兼容 armeabi和 armeabi-v7a。
    引入so 的话 现在一般用 cmake的方式
    通过CMakeLists.txt 文件来控制 .cpp文件和so文件的关联
    .cpp 通过方法名 来关联 java的native方法
    网上的方法都是eclipse里的老方法了 as自从2.2后就支持原生jni的编写了”

因为有点难懂,但我还是将其摘出来,囤积囤积。

armeabi和armeabi-v7a皆创建在libs中,.so都挨个导一次。
关于armeabi和armeabi-v7a,我以为是用来兼容的,找了个看起来比较简洁易懂的链接:
极客公园

  • 放在libs下有时会和一同引入的jar冲突,放在main层级下的jniLibs,会自动引用,从而避免冲突。

设置文字不随系统字体大小变化

情景:
群里Z兄的领导老花眼,想让APP字体变大点,然后… …

  • 在代码中设置字体大小时,同时将字体大小的单位设置了dp,就可以固定字体大小不随系统设定的字号变化了。
    我们在xml中设置大小时单位通常是dp;而在代码中设置大小时setTextSize(25)里面却是sp;setTextSize(TypedValue.COMPLEX_UNIT_DIP,25)即可在代码中设置为dp的值。

    • dp和dip的关系 异同于 fill parent跟 match parent的关系。
  • 重写getResources方法

@Override  
public Resources getResources() {  
    Resources res = super.getResources();    
    Configuration config=new Configuration();    
    config.setToDefaults();    
    res.updateConfiguration(config,res.getDisplayMetrics());  
    return res;  
}

AndroidStudio 不显示Log(华为)

情景:
真机(华为,型号HONOR H30-L01,4.4.2)测试的时候,自己打印的Log无法正常显示。

解决:

  • 在手机的拨号界面输入*#*#2846579#*#*

  • 进入projectmenu

  • 在Log设置里面进行设置

对蓝牙发来的0-255的数据我们在这边接收的时候需要转成int类型:

int int_ = byte & 0xFF

一些新的关于适配的小Tips

  • ConstraintLayout +dp
  • 用start end 取代 left right

RecyclerView中删除条目使用notifyDataSetChanged();无法做到及时刷新

  • 在多次查找和测试后发现我的remove();方法中放的是类似list.get(i)的值,改为具体的int值后,就可以正常刷新;
  • 这个类似指的是任何经过遍历的值直接放在remove();中的操作;
  • 可知remove();中只能放int类型的值而非一个int类型的对象;

Android正确关闭线程

一个百度地图问题

loadExceptionjava.lang.UnsatisfiedLinkError: dlopen failed: “/data/data/com.zoommax.car/files/libs/libBaiduMapSDK_base_v4_2_1.so” is 32-bit instead of 64-bit
如果还是不行的话,可能需要到官网下个demo重新弄sdk,还有就是务必用真机测试。

  • PS:还是高德好用= =

Android9.0明文通信

出处
res —> 新建先xml文件夹 —> 创建network_security_config.xml —> 如下代码:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

—> 再在AndroidManifest,application标签中加入:

android:networkSecurityConfig="@xml/network_security_config"

修改Bitmap图片的大小

原文

public static Bitmap imageScale(Bitmap bitmap, int dst_w, int dst_h) {
		int src_w = bitmap.getWidth();
		int src_h = bitmap.getHeight();
		float scale_w = ((float) dst_w) / src_w;
		float scale_h = ((float) dst_h) / src_h;
		Matrix matrix = new Matrix();
		matrix.postScale(scale_w, scale_h);
		Bitmap dstbmp = Bitmap.createBitmap(bitmap, 0, 0, src_w, src_h, matrix,
				true);
		return dstbmp;
	}

适配阿拉伯语出现布局重叠的问题

解决Github打不开问题

转自知乎

获取分辨率和DPI

摘自
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
// 屏幕宽度(像素)
int width = metric.widthPixels;
// 屏幕高度(像素)
int height = metric.heightPixels;
// 屏幕密度(1.0 / 1.5 / 2.0)
float density = metric.density;
// 屏幕密度DPI(160 / 240 / 320)
int densityDpi = metric.densityDpi;
String info =
"\n设备型号: " + android.os.Build.MODEL +
“\nSDK版本:” + android.os.Build.VERSION.SDK +
“\n系统版本:” + android.os.Build.VERSION.RELEASE +
"\n屏幕宽度(像素): " + width +
"\n屏幕高度(像素): " + height +
"\n屏幕密度: " + density +
"\n屏幕密度DPI: " + densityDpi;
Log.d(“看看”, info);

鸿蒙深色应用出现深色Title

  • Theme.AppCompat.Light.NoActionBar
  • <item name="android:forceDarkAllowed" tools:targetApi="q">false</item>

Unresolved reference: DefaultLifecycleObserver

  • 如果是java 8的话,需要在build文件添加implementation "androidx.lifecycle:lifecycle-common-java8:2.3.1"

keytool不是内部或外部命令,也不是可运行的程序

高德地图关于获取调试版和正式版密钥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值