or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
有效精簡 ProGuard 規則以達縮小 APK 之目的
有效精簡 ProGuard 規則以達縮小 APK 之目的
tags:
2018
,R1
位置: R1
講者:林容瑋
有效使用 ProGuard 就能有效縮小 APK
Shrink apk by removing unused code at run-time.
Obfuscate code to provide minimal protections against…
What is ProGuard?
-keep class * e ClassA
Refinement steps & reasons
Reuslt
購物中心
APK Size: 16.3M -> 15.4M (-0.9M / -5.52%)
Method count: 114,476 ->
Recap
Refine ProGuard Configuration
Trouble shoot
What should be carefule?
3-rd Library implements with reflection. f
Glide: initialization
parsing data with field names
Gson + Retorfit: JSON model
Anything implementation with static name
Add "-addconfigurationdebugging"
(Only use in debug version)
R8
Q & A
Q:是否能在Kotlin用ProGuard? (大概是這意思吧?)
A:ProGuard主要針對Java處理