Android混淆指令
在Android打包过程中,混淆dex是不可或缺的,下面简单介绍几个应用在混淆文件中的指令。
加载过慢请开启缓存(浏览器默认开启)
在App开发中,我们会发现启动App的时候,应用会先黑屏或者白屏后才进入到我们的第一个页面,这是因为当我们打开App时,我们的App可能还没初始化完成,系统为了响应我们的操作,首先会启动一个WindowType
为TYPE_APPLICATION_STARTING
的Window
,等App初始化完成后在移除这个Window
,所以我们看到的黑屏和白屏也就是这个Window
了。
但是为什么有的是黑的有的是白的呢,因为这个Window
默认会显示一个空的DecorView(Window顶层视图)
,这个DecorView
会应用Splash
页面所在Activity
的Theme
,如果没有指定,那么就会用Application
的Theme
。
所以我们可以自定义Splash
页面的Theme
来解决黑/白屏的问题,比如我们自定义的Theme
如下:
<style name="SplashTheme" parent="xxx">
<item name="android:windowFullscreen">true</item>
<item name="android:windowIsTranslucent">true</item>
</style>
设置后,会发现启动我们的App虽然没有之前的问题了,但是会先延迟一会在进入Splash
页面,这是因为我们把Window
设置为透明的了,所以用户就会感觉我们的App
启动缓慢。
如果对这样的设置不满意,我们可以给这个Window
自定义一个背景,比如先自定义一个layer-list
命名为open_splash.xml
,注意这个layer-list
内容最好和Splash
页面相同,这样用户就会无感知了,如下:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/splash_page_color" />
<item>
<bitmap
android:gravity="bottom"
android:src="@drawable/splash_bottom" />
</item>
</layer-list>
然后修改我们的Theme
,如下:
<style name="SplashTheme" parent="xxx">
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@drawable/open_splash</item>
</style>
此时在启动,我们就可以流畅的看到App的启动了。
Android中TextView并不支持所有的HTML标签,如果需要更为复杂的操作最好使用WebView,今天再网上看到TextView支持的HTML标签的总结,记录在这里: