zm.blog

select * from learn


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

Android跳转到应用商店详情页面

发表于 2020-01-09 | 分类于 Android , Android Tips | | 阅读次数:

Android应用开发过程中,可能会有需求,比如:推广时跳转到应用市场下载应用,跳转到应用市场给自己的应用打分,跳转到应用市场更新自己的应用。那如何跳转到应用市场呢?

可能跳转的方法大家都是知道的,方法如下:

1
2
3
4
5
6
7
8
9
public static void goToMarket(Context context, String packageName) {
Uri uri = Uri.parse("market://details?id=" + packageName);
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
try {
context.startActivity(goToMarket);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}

此方法支持应用宝、360手机助手、豌豆荚、小米商店等主流的应用市场,当手机上面装有多个应用市场时,则会弹出菜单让用户选择调转到哪个市场。那么,问题来了,如果这么简单就结束了,怎么还会有这篇文章呢?
 在红米Note2上测试时发现,调用此方法默认是直接调转到小米市场,那如果在小米手机上,想要跳转到应用宝或者其他的应用市场怎么办呢,方法自然是有的,如下:

1
2
3
4
5
6
7
8
9
10
public static void goToMarket(Context context, String packageName) {
Uri uri = Uri.parse("market://details?id=" + packageName);
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
try {
goToMarket.setClassName("com.tencent.android.qqdownloader", "com.tencent.pangu.link.LinkProxyActivity");
context.startActivity(goToMarket);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}
阅读全文 »

TextView字体大小自适应

发表于 2019-11-28 | 分类于 Android , Android Tips | | 阅读次数:

描述

在进行android 开发过程中,会遇到TextView 中文本显示不全的情况,这个时候想根据文本的长度自动改变字体大小,首先想到的时候自定义View ,但是呢在Android O 中已经提供了实现方式,并且拥有兼容库,最低支持到API 14,这瞬间就爽到我了,不多BB 了,直接看实现。

重点注意:

如果代码中设置了以下的代码,不生效。

1
android:singleLine="true"

必须设置的属性是:

1
android:maxLines="1"

效果图

没有效果图,如果你用过今日头条添加频道的话,这里就不会骂我了。

通过代码方式

在代码中调用函数 setAutoSizeTextTypeWithDefaults(@AutoSizeTextType int autoSizeTextType) 并指定参数为 AUTO_SIZE_TEXT_TYPE_UNIFORM来设置默认值。如果你不想启用自动调整字体大小的功能,则可以设置参数为 AUTO_SIZE_TEXT_TYPE_NONE.

1
textView.setAutoSizeTextTypeWithDefaults(TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM);

或者设置粒度(设置最大只和最小值,并且指定每次调整的增量值):

1
2
//autoSizeMinTextSize 最小值;autoSizeMaxTextSize:最大值;autoSizeStepGranularity:增量;unit:类型,此处指定的是sp
textView.setAutoSizeTextTypeUniformWithConfiguration(10,17,1,TypedValue.COMPLEX_UNIT_SP);

通过xml 方式(推荐的方式)

1
2
3
4
5
6
7
8
9
10
11
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="3sp"
app:autoSizeMaxTextSize="15sp"
app:autoSizeStepGranularity="1sp"
android:maxLines="1"/>
阅读全文 »

Android中常用的加密方式

发表于 2019-11-27 | 分类于 Android , Android Tips | | 阅读次数:

一、Rsa加密

1、RSA是第一种既可以用于数据加密,也可以用于数字签名的算法;

2、算法原理:

1)、随机产生两个大的质数m、n且m!=n,计算K1=mn;
2)、选择一个大于1小于k1的自然数k2,k2必须与(m-1)(n-1)互为素数;
3)、计算得到d—>d x k2=1(mod(m-1)(n-1));
4)、销毁mn;
最终产生的k1和k2为“公钥”,d为“私钥”,发送方使用k1进行加密,接收方使用d进行解密。

3、注意:

1、RSA的安全性依赖于大数分解,小于1024位的k1被认为是不安全的;
2、RSA的计算速度慢。

4、使用

1、生成密钥对

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* 随机生成RSA密钥对
*
* @param keyLength 密钥长度,范围:512~2048
* 一般1024
* @return
*/
public static KeyPair generateRSAKeyPair(int keyLength) {
try {
KeyPairGenerator kpg = KeyPairGenerator.getInstance(RSA);
kpg.initialize(keyLength);
return kpg.genKeyPair();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
阅读全文 »

热修复原理

发表于 2019-11-27 | 分类于 Android , Android Tips | | 阅读次数:

阅读全文 »

插件化原理

发表于 2019-11-27 | 分类于 Android , Android Tips | | 阅读次数:

阅读全文 »

程序猿

发表于 2019-11-18 | 分类于 随笔记 | | 阅读次数:

​ “先生不知何许人也,亦不详其姓字。时年二十有二,英俊朗逸,秀发蓬勃。始入IT大厂,朝九晚五,日食三餐。好读书,曰《X语言入门》、《X语言应用实践》、《X语言高阶编程》。

​ 次年,二十有三,英俊尚可,然寡言少语,身影飄忽,秀发日疏。一人一烟一Computer,长坐不起,日复一日。所观者,《编程语言的科学与艺术》、《编程之美》、《编程之道》、《编程之禅》。

​ 而今年约三十,不复俊逸。其目,炯炯然有所虑,其背,日益佝偻,其发,隐约可见地中海。常持杯,与沸水枸杞为伴,嗜书,然所读者与众不同,唤作《颈椎病康复指南》。

​ 观其状,时人不解。或曰,必为程序猿也!”

阅读全文 »

Android知识点总结

发表于 2019-11-11 | 分类于 Android , 面试 | | 阅读次数:

Android进阶部分

阅读全文 »

android采用ChromeIntent方式实现从浏览器启动应用

发表于 2019-11-07 | 分类于 Android , Android Tips | | 阅读次数:

在很多应用中需要我们从浏览器中直接启动应用,而网上大多数采用的是scheme的方式,即在启动activity的mainfest文件中配置如下字段:

1
2
3
4
5
6
7
8
<activity android:name="com.example.MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="example" android:host="test" />
</intent-filter>
</activity>

然后在网页的连接设置为example://test/… 来启动应用,但是如果手机中没有应用,该url会跳转到一个错误的界面。

google官方在chrome中推出了一种Android Intents的方式来实现应用启动,通过在iframe中设置src为的方式,具体示例如下。

1
2
3
4
5
6
7
8
intent:HOST/URI-path // Optional host
#Intent;
package=[string];
action=[string];
category=[string];
component=[string];
scheme=[string];
end;
阅读全文 »

Android渐变色xml文件

发表于 2019-10-30 | 分类于 Android , Android Tips | | 阅读次数:

在drawable目录下新建drawable resource file,修改xml代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!--
android:startColor="#aa000000" 渐变起始色值
android:centerColor="" 渐变中间色值
android:endColor="#ffffffff" 渐变结束颜色
android:angle="45" 渐变的方向 默认为0 从做向右 ,90时从下向上 必须为45的整数倍
android:type="radial" 渐变类型 有三种 线性linear 放射渐变radial 扫描线性渐变sweep
android:centerX="0.5" 渐变中心相对X坐标只有渐变类型为放射渐变时有效
android:centerY="0.5" 渐变中心相对Y坐标只有渐变类型为放射渐变时有效
android:gradientRadius="100" 渐变半径 非线性放射有效
-->
<gradient
android:startColor="#b7bbd9"
android:endColor="#5CACEE"
android:angle="90"
/>

</shape>
阅读全文 »

日常代码写作规范及优化建议

发表于 2019-10-18 | 分类于 Java , 基础 | | 阅读次数:

批量数据处理

每次读取数据时,批量读取,然后在应用中进行分组、分发,例如:

订单列表页涉及到用户、订单、商品等表,批量把当前页的订单、用户、商品一次性读取回来,然后在应用中进行数据的组装,以减少sql请求量,降低数据库压力,加快操作响应速度。

线程池的使用

建议尽量避免使用

1
@Async

注解,因为这个是共享了Spring提供的线程池,大量使用的时候,容易造成线程池溢出,建议使用自定义的线程池,并且估算好以下参数:

  • 核心线程数、最大线程数
  • 存活时长
  • 任务队列及长度
  • 自定义ThreadFactory,指定线程名称
  • 根据业务指定拒绝策略

HashMap不要在多线程环境下使用

应用默认都是多线程环境的,所以在定义HashMap对象的时候一定要清楚的知道当前有没有多线程的问题

控制数据量大小

每次操作数据的时候,一定要清楚的知道当前操作的数据可能的量,并清楚的知道最大的量是多少、未来的增长数据和空间,以防止引起内存不足,我们的系统的内存大部分是4-8个G;

除非能确定数据量有限且不增长,否则都应该分批操作,保证每批数据的有限性,以防随着数据量大后造成系统风险。

对于需要较长时间的业务,比如导入数据、调用第三方接口之类,最好做成任务类型

阅读全文 »
1…789…38
ZhangMiao

ZhangMiao

Android/Flutter Developer

379 日志
58 分类
143 标签
RSS
E-Mail QQ Github StackOverflow
友情链接
  • Kaisir
  • Liujianhui
  • Leo
  • Hongyang
  • Liuwangshu
  • Jspang
  • Blankj
  • WuXiaoLong
  • Molunerfinn
  • Ofind
  • Gcssloop
© 2024 ZhangMiao
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
本站访客数 人次 本站总访问量 次