Skip to content

Instantly share code, notes, and snippets.

View shuanghua's full-sized avatar
🍃
I

Sam.Mo shuanghua

🍃
I
  • Android Engineer
  • CN
View GitHub Profile
@shuanghua
shuanghua / RestartAppUtil.java
Created April 21, 2023 01:44 — forked from imhet/RestartAppUtil.java
Android 重启应用的5种方式
/**
* 多种方式重启应用自身
*/
public class RestartAppUtil
{
/**
* 使用 AlarmManager 来帮助重启
@shuanghua
shuanghua / build.gradle.kts
Last active January 28, 2023 00:57
一份包含签名、DataBinding 等配置的 Android 项目 build.gradle.kts
// Project/keystore//keystore/xxxxxx.jks
// Project/keystore//keystore.properties
// < keystore.properties 内容> :
// storePassword=xxxxxxx
// keyPassword=xxxxxxx
// keyAlias=xxxxxxx
// storeFile=/keystore/xxxxxx.jks
import org.jetbrains.kotlin.konan.properties.Properties
@shuanghua
shuanghua / ohmyposhv3-v2.json
Created October 20, 2021 05:34 — forked from shanselman/ohmyposhv3-v2.json
ohmyposhv3-v2
{
"final_space": true,
"console_title": true,
"console_title_style": "folder",
"blocks": [
{
"type": "prompt",
"alignment": "left",
"horizontal_offset": 0,
"vertical_offset": 0,

下载 caddy2

去 caddy2 官方 github 下载和 Linux 系统对应的可执行文件 https://github.com/caddyserver/caddy/releases 尽可能下载最新的版本,因为 bug 少,下载完成后并移动到 /usr/bin/ 下 (如果你有能力也可以下载源码进行编译安装)

Caddyfile 有两种配置写法

  • 第一种:
{
	experimental_http3
}
@shuanghua
shuanghua / AndroidManifest.xml
Last active August 27, 2020 08:47
调用相机拍照
<application
<!--适配7.0+拍照返回 Start-->
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_path" />
@shuanghua
shuanghua / TextViewStringStyle.java
Created August 14, 2020 23:44
android 设置指定字符样式
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String str1 = "你有${ccccc}财产需要领";
//String str1 = "${ccccc}你有财产需要领$";
//String str1 = "你有财产需要领${ccccc}";
@shuanghua
shuanghua / debian-ufw.md
Created July 19, 2020 12:56
debian ufw 防火墙安装

安装 ufw

sudo apt install ufw
sudo ufw allow OpenSSH                         //让 ufw 允许 ssh 连接,避免后续连接不上 vps

如果SSH服务器 ssh 登录的端口不是 22 ,则还必须需要打开该端口。

val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view.windowToken, 0)
@shuanghua
shuanghua / IconView.kt
Created March 15, 2019 09:59 — forked from nickbutcher/IconView.kt
A prototype implementation of a shadow effect inspired by the Google Play Games app (https://play.google.com/store/apps/details?id=com.google.android.play.games).
/*
* Copyright 2017 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
方式1:
var resourceId = resources.getIdentifier("status_bar_height", "dimen", "android")
//修改高度
return resources.getDimensionPixelSize(resourceId)
方式2:
myView.setOnApplyWindwoInsetListener{view,insets ->
val statusBarSize = insets.systemWindowInsetTop
return insets
}