积跬步

Just do IT Now.


  • Home

  • Tags

  • Categories

  • Archives

  • Search

安卓-四大组件-Service

Posted on 2019-12-26 | In Android

Service

一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。

比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity 会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service 一直执行,直到这个service 运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service 上(如果这个service 还没有运行将启动它)。当连接到一个service 之后,我们还可以service 提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。

Read more »

安卓-四大组件-Activity

Posted on 2019-12-26 | In Android

Activity

4 种状态

  • Active
  • Paused
  • Stopped
  • Killed
Read more »

安卓-四大组件-BroadcastReceiver

Posted on 2019-12-26 | In Android

BroadcastReceiver

target 26 之后,无法在 AndroidManifest 显示声明大部分广播,除了一部分必要的广播,如:

  • ACTION_BOOT_COMPLETED
  • ACTION_TIME_SET
  • ACTION_LOCALE_CHANGED
Read more »

安卓-四大组件-ContentProvider

Posted on 2019-12-26 | In Android

ContentProvider

android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式,其他应用可以通过ContentResolver类(见ContentProviderAccessApp例子)从该内容提供者中获取或存入数据.(相当于在应用外包了一层壳),只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中

它的好处:统一数据访问方式。

Read more »

建站-个人博客

Posted on 2019-12-25 | In 其他IT

创建个人博客

Read more »

第三方-Glide源码解读(记录)

Posted on 2019-12-25 | In Android

“抽丝剥茧,点到即止”

阅读源码应认准一个功能点,然后去分析这个功能是如何实现的。但只要去追寻主体的实现逻辑即可,不要试图搞懂每一行代码。

Glide源码就定一个以下目标:

Read more »

第三方-ARouter

Posted on 2019-12-25 | In Android

笔记

模块开关设置

模块间通信

Read more »

第三方-RxJava-操作符

Posted on 2019-12-25 | In Android

RxJava操作符的介绍

操作符网址

创建操作(用于创建Observable的操作符)

Read more »

第三方-RxJava

Posted on 2019-12-25 | In Android

RxJava

关于RxJava最友好的文章(初级篇)

rxjava2思维导图

Read more »

第三方-Dagger2

Posted on 2019-12-25 | In Android

dagger2相关

dagger2笔记:

是个依赖注入框架。Dagger2是第一个用生成的代码实现完整堆栈的。指导原则是生成代码,模仿用户可能已经手写的代码,以确保依赖注入尽可能简单、可跟踪和高性能。

Read more »

第三方-Utilcode

Posted on 2019-12-25 | In Android

笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public class MyApp extends MultiDexApplication{
@Override
public void onCreate() {
super.onCreate();

//底下两句可以不放在Application中
initCrash();
initLog();
}

// init it in ur application
public void initLog() {
LogUtils.Config config = LogUtils.getConfig()
.setLogSwitch(BuildConfig.LOG_DEBUG)// 设置 log 总开关,包括输出到控制台和文件,默认开
.setConsoleSwitch(BuildConfig.LOG_DEBUG)// 设置是否输出到控制台开关,默认开
.setGlobalTag("UtilCode-Log")// 设置 log 全局标签,默认为空
// 当全局标签不为空时,我们输出的 log 全部为该 tag,
// 为空时,如果传入的 tag 为空那就显示类名,否则显示 tag
.setLogHeadSwitch(true)// 设置 log 头信息开关,默认为开
.setLog2FileSwitch(true)// 打印 log 时是否存到文件的开关,默认关
.setDir("")// 当自定义路径为空时,写入应用的/cache/log/目录中
.setFilePrefix("")// 当文件前缀为空时,默认为"util",即写入文件为"util-yyyy-MM-dd$fileExtension"
.setFileExtension(".txt")// 设置日志文件后缀
.setBorderSwitch(true)// 输出日志是否带边框开关,默认开
.setSingleTagSwitch(true)// 一条日志仅输出一条,默认开,为美化 AS 3.1 的 Logcat
.setConsoleFilter(LogUtils.W)// log 的控制台过滤器,和 logcat 过滤器同理,默认 Verbose
.setFileFilter(LogUtils.E)// log 文件过滤器,和 logcat 过滤器同理,默认 Verbose
.setStackDeep(1)// log 栈深度,默认为 1
.setStackOffset(0)// 设置栈偏移,比如二次封装的话就需要设置,默认为 0
.setSaveDays(1)// 设置日志可保留天数,默认为 -1 表示无限时长
// 新增 ArrayList 格式化器,默认已支持 Array, Throwable, Bundle, Intent 的格式化输出
.addFormatter(new LogUtils.IFormatter<ArrayList>() {
@Override
public String format(ArrayList arrayList) {
return "LogUtils Formatter ArrayList { " + arrayList.toString() + " }";
}
})
.addFileExtraHead("ExtraKey", "ExtraValue");
LogUtils.i(config.toString());
}

private void initCrash() {
CrashUtils.init(crashInfo -> {
//可以在错误信息中添加一些额外的内容(这一句会仅生成一个crash文件(即旧的crash文件会被自动删除))
crashInfo.addExtraHead("extraKey", "extraValue");
//log可以不初始化,发生crash的时候也会打log
//LogUtils.e(crashInfo.toString());
//AppUtils.relaunchApp();
});
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* 删除错误文件夹和日志文件夹
*/
public static void clearCrashAndLogFile(){
try {
if (!DebugController.isDebug()) {
// crash文件路径 /storage/emulated/0/Android/data/com.xm597.app/files/crash/
FileUtils.deleteAllInDir(PathUtils.getExternalAppFilesPath() + System.getProperty("file.separator") + "crash");
FileUtils.deleteAllInDir(PathUtils.getExternalAppFilesPath() + System.getProperty("file.separator") + "log");
}
} catch (Exception e) {
e.printStackTrace();
}
}
Read more »

第三方相关

Posted on 2019-12-25 | In Android

申请第三方参数所需数据

  1. 定包名
  2. 定签名文件(生成签名文件)
  3. 取签名文件的SHA1(第三方参数文档中的“安全码”)
  4. 取签名文件的MD5值(要去掉冒号)(或者用微信签名工具输入包名得到的)32位数字(第三方参数文档中的“应用签名”)
  5. 给运维打好的包
    js中字符串全部替换【新版Chrome不让用了。那就直接用文本的全局替换】
    1
    "CD:B0:3E:73:53:2B:C2:A2:54:5D:2E:75:67:74:BB:92".replace(/\:/g,"")

支付宝支付

Read more »
<1…202122…24>

285 posts
21 categories
44 tags
E-Mail CSDN
0%
© 2018 — 2025 阿炳
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4