Skip to content

Commit df1a07b

Browse files
author
cmj
committed
see 10/31 log
1 parent 7ec066f commit df1a07b

61 files changed

Lines changed: 2350 additions & 87 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
*.iml
2+
.gradle
3+
/local.properties
4+
.idea
5+
.DS_Store
6+
/build
7+
/captures
8+
.externalNativeBuild

app/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

app/build.gradle

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apply plugin: 'com.android.application'
2+
3+
android {
4+
compileSdkVersion rootProject.ext.android.compileSdkVersion
5+
buildToolsVersion rootProject.ext.android.buildToolsVersion
6+
7+
defaultConfig {
8+
applicationId "com.blankj.androidutilcode"
9+
minSdkVersion rootProject.ext.android.minSdkVersion
10+
targetSdkVersion rootProject.ext.android.targetSdkVersion
11+
versionCode rootProject.ext.android.versionCode
12+
versionName rootProject.ext.android.versionName
13+
}
14+
buildTypes {
15+
release {
16+
minifyEnabled true
17+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18+
}
19+
}
20+
}
21+
22+
dependencies {
23+
compile fileTree(include: ['*.jar'], dir: 'libs')
24+
compile project(':utilcode')
25+
compile rootProject.ext.deps.design
26+
compile rootProject.ext.deps.supportV4
27+
}

app/proguard-rules.pro

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Add project specific ProGuard rules here.
2+
# By default, the flags in this file are appended to flags specified
3+
# in G:\Android_IDE\ADT\sdk/tools/proguard/proguard-android.txt
4+
# You can edit the include path and order by changing the proguardFiles
5+
# directive in build.gradle.
6+
#
7+
# For more details, see
8+
# http://developer.android.com/guide/developing/tools/proguard.html
9+
10+
# Add any project specific keep options here:
11+
12+
# If your project uses WebView with JS, uncomment the following
13+
# and specify the fully qualified class name to the JavaScript interface
14+
# class:
15+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16+
# public *;
17+
#}
18+
19+
-keep class com.blankj.utilcode.** { *; }
20+
-keep classmembers class com.blankj.utilcode.** { *; }
21+
-dontwarn com.blankj.utilcode.**

app/src/main/AndroidManifest.xml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="com.blankj.androidutilcode">
4+
悲剧
5+
<!--读写内存-->
6+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
7+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
8+
9+
<!--network-->
10+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
11+
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
12+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
13+
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
14+
<uses-permission android:name="android.permission.INTERNET"/>
15+
16+
<!--phone-->
17+
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
18+
<uses-permission android:name="android.permission.CALL_PHONE"/>
19+
<uses-permission android:name="android.permission.SEND_SMS"/>
20+
<!--拨打电话-->
21+
<uses-permission android:name="android.permission.CALL_PHONE"/>
22+
<!--发送短信-->
23+
<uses-permission android:name="android.permission.SEND_SMS"/>
24+
<!--获取手机联系人-->
25+
<!--<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>-->
26+
<uses-permission android:name="android.permission.READ_CONTACTS"/>
27+
<!--获取短信-->
28+
<!--<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>-->
29+
<uses-permission android:name="android.permission.READ_SMS"/>
30+
31+
<application
32+
android:name=".App"
33+
android:allowBackup="true"
34+
android:icon="@mipmap/ic_launcher"
35+
android:label="@string/my_app_name"
36+
android:supportsRtl="true"
37+
android:theme="@style/AppTheme">
38+
<activity android:name=".activities.ActivityActivity"/>
39+
<activity android:name=".activities.AppActivity"/>
40+
<activity android:name=".activities.CleanActivity"/>
41+
<activity android:name=".activities.DeviceActivity"/>
42+
<activity android:name=".activities.ImageActivity"/>
43+
<activity
44+
android:name=".activities.KeyboardActivity"
45+
android:windowSoftInputMode="stateHidden|adjustPan"/>
46+
<activity android:name=".activities.MainActivity">
47+
<intent-filter>
48+
<action android:name="android.intent.action.MAIN"/>
49+
<category android:name="android.intent.category.LAUNCHER"/>
50+
</intent-filter>
51+
</activity>
52+
<activity android:name=".activities.NetworkActivity"/>
53+
<activity android:name=".activities.PhoneActivity"/>
54+
<activity android:name=".activities.ProcessActivity"/>
55+
<activity android:name=".activities.SDCardActivity"/>
56+
<activity android:name=".activities.SnackbarActivity"/>
57+
<activity android:name=".activities.ToastActivity"/>
58+
</application>
59+
60+
</manifest>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.blankj.androidutilcode;
2+
3+
import android.app.Application;
4+
import android.os.Handler;
5+
import android.os.Message;
6+
7+
import com.blankj.utilcode.utils.CrashUtils;
8+
import com.blankj.utilcode.utils.LogUtils;
9+
10+
import java.lang.ref.WeakReference;
11+
12+
/**
13+
* <pre>
14+
* author: Blankj
15+
* blog : http://blankj.com
16+
* time : 2016/10/12
17+
* desc :
18+
* </pre>
19+
*/
20+
public class App extends Application {
21+
22+
private static App ourInstance;
23+
24+
public static App getInstance() {
25+
return ourInstance;
26+
}
27+
28+
@Override
29+
public void onCreate() {
30+
super.onCreate();
31+
ourInstance = this;
32+
CrashUtils.getInstance().init(this);
33+
LogUtils.getBuilder(this).setTag("MyTag").setLog2FileSwitch(true).create();
34+
}
35+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.blankj.androidutilcode.activities;
2+
3+
import android.app.Activity;
4+
import android.os.Bundle;
5+
import android.view.View;
6+
import android.widget.TextView;
7+
8+
import com.blankj.androidutilcode.R;
9+
import com.blankj.utilcode.utils.ActivityUtils;
10+
import com.blankj.utilcode.utils.DeviceUtils;
11+
import com.blankj.utilcode.utils.IntentUtils;
12+
import com.blankj.utilcode.utils.ShellUtils;
13+
14+
/**
15+
* <pre>
16+
* author: Blankj
17+
* blog : http://blankj.com
18+
* time : 2016/10/13
19+
* desc : Activity工具类测试
20+
* </pre>
21+
*/
22+
23+
public class ActivityActivity extends Activity
24+
implements View.OnClickListener {
25+
26+
private String packageName;
27+
private String className;
28+
29+
@Override
30+
protected void onCreate(Bundle savedInstanceState) {
31+
super.onCreate(savedInstanceState);
32+
setContentView(R.layout.activity_activity);
33+
34+
packageName = this.getPackageName();
35+
className = packageName + ".activities.ImageActivity";
36+
37+
TextView tvAboutActivity = (TextView) findViewById(R.id.tv_about_activity);
38+
39+
findViewById(R.id.btn_launch_image_activity).setOnClickListener(this);
40+
41+
boolean isExists = ActivityUtils.isActivityExists(this, packageName, className);
42+
tvAboutActivity.setText(String.format("Is ImageActivity Exists: %b", isExists));
43+
}
44+
45+
@Override
46+
public void onClick(View view) {
47+
switch (view.getId()) {
48+
case R.id.btn_launch_image_activity:
49+
ActivityUtils.launchActivity(this, packageName, className);
50+
break;
51+
}
52+
}
53+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package com.blankj.androidutilcode.activities;
2+
3+
import android.app.Activity;
4+
import android.os.Bundle;
5+
import android.view.View;
6+
import android.widget.TextView;
7+
8+
import com.blankj.androidutilcode.App;
9+
import com.blankj.androidutilcode.R;
10+
import com.blankj.utilcode.utils.AppUtils;
11+
12+
/**
13+
* <pre>
14+
* author: Blankj
15+
* blog : http://blankj.com
16+
* time : 2016/10/13
17+
* desc : App工具类测试
18+
* </pre>
19+
*/
20+
21+
public class AppActivity extends Activity
22+
implements View.OnClickListener {
23+
24+
private String appPath;
25+
26+
@Override
27+
protected void onCreate(Bundle savedInstanceState) {
28+
super.onCreate(savedInstanceState);
29+
setContentView(R.layout.activity_app);
30+
31+
appPath = AppUtils.getAppPath(this);
32+
33+
TextView tvAboutApp = (TextView) findViewById(R.id.tv_about_app);
34+
35+
findViewById(R.id.btn_install_app).setOnClickListener(this);
36+
findViewById(R.id.btn_install_app_silent).setOnClickListener(this);
37+
findViewById(R.id.btn_uninstall_app).setOnClickListener(this);
38+
findViewById(R.id.btn_uninstall_app_silent).setOnClickListener(this);
39+
findViewById(R.id.btn_launch_app).setOnClickListener(this);
40+
findViewById(R.id.btn_get_app_details_settings).setOnClickListener(this);
41+
42+
tvAboutApp.setText(AppUtils.getAppInfo(this).toString() +
43+
"\nisInstallWeiXin: " + AppUtils.isInstallApp(this, "com.tencent.mm") +
44+
"\nisAppRoot: " + AppUtils.isAppRoot() +
45+
"\nisAppDebug: " + AppUtils.isAppDebug(this) +
46+
"\nisWeiXinAppDebug: " + AppUtils.isAppDebug(this, "com.tencent.mm") +
47+
"\nAppSignatureSHA1: " + AppUtils.getAppSignatureSHA1(this) +
48+
"\nisAppForeground: " + AppUtils.isAppForeground(this) +
49+
"\nisWeiXinForeground: " + AppUtils.isAppForeground(this, "com.tencent.mm")
50+
);
51+
}
52+
53+
@Override
54+
public void onClick(View view) {
55+
switch (view.getId()) {
56+
case R.id.btn_install_app:
57+
AppUtils.installApp(this, appPath);
58+
break;
59+
case R.id.btn_install_app_silent:
60+
new Thread(new Runnable() {
61+
@Override
62+
public void run() {
63+
AppUtils.installAppSilent(App.getInstance(), appPath);
64+
}
65+
}).start();
66+
break;
67+
case R.id.btn_uninstall_app:
68+
AppUtils.uninstallApp(this, this.getPackageName());
69+
break;
70+
case R.id.btn_uninstall_app_silent:
71+
AppUtils.uninstallAppSilent(this, this.getPackageName(), false);
72+
break;
73+
case R.id.btn_launch_app:
74+
AppUtils.launchApp(this, this.getPackageName());
75+
break;
76+
case R.id.btn_get_app_details_settings:
77+
AppUtils.getAppDetailsSettings(this);
78+
break;
79+
}
80+
}
81+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.blankj.androidutilcode.activities;
2+
3+
import android.os.Bundle;
4+
import android.app.Activity;
5+
import android.util.Log;
6+
import android.view.View;
7+
import android.widget.Button;
8+
9+
import com.blankj.androidutilcode.R;
10+
import com.blankj.utilcode.utils.CleanUtils;
11+
12+
import java.io.File;
13+
14+
/**
15+
* <pre>
16+
* author: Blankj
17+
* blog : http://blankj.com
18+
* time : 2016/9/29
19+
* desc : Clean工具类测试
20+
* </pre>
21+
*/
22+
public class CleanActivity extends Activity
23+
implements View.OnClickListener {
24+
25+
@Override
26+
protected void onCreate(Bundle savedInstanceState) {
27+
super.onCreate(savedInstanceState);
28+
setContentView(R.layout.activity_clean);
29+
30+
Button btnCleanInternalCache = (Button) findViewById(R.id.btn_clean_internal_cache);
31+
Button btnCleanInternalFiles = (Button) findViewById(R.id.btn_clean_internal_files);
32+
Button btnCleanInternalDbs = (Button) findViewById(R.id.btn_clean_internal_databases);
33+
Button btnCleanInternalSP = (Button) findViewById(R.id.btn_clean_internal_sp);
34+
Button btnCleanExternalCache = (Button) findViewById(R.id.btn_clean_external_cache);
35+
36+
btnCleanInternalCache.setOnClickListener(this);
37+
btnCleanInternalFiles.setOnClickListener(this);
38+
btnCleanInternalDbs.setOnClickListener(this);
39+
btnCleanInternalSP.setOnClickListener(this);
40+
btnCleanExternalCache.setOnClickListener(this);
41+
42+
btnCleanInternalCache.setText(getCacheDir().getPath());
43+
btnCleanInternalFiles.setText(getFilesDir().getPath());
44+
btnCleanInternalDbs.setText(getFilesDir().getParent() + File.separator + "databases");
45+
btnCleanInternalSP.setText(getFilesDir().getParent() + File.separator + "shared_prefs");
46+
btnCleanExternalCache.setText(getExternalCacheDir().getPath());
47+
}
48+
49+
@Override
50+
public void onClick(View view) {
51+
switch (view.getId()) {
52+
case R.id.btn_clean_internal_cache:
53+
Log.d("cleanInternalCache", "" + CleanUtils.cleanInternalCache(this));
54+
break;
55+
case R.id.btn_clean_internal_files:
56+
Log.d("cleanInternalFiles", "" + CleanUtils.cleanInternalFiles(this));
57+
break;
58+
case R.id.btn_clean_internal_databases:
59+
Log.d("cleanInternalDbs", "" + CleanUtils.cleanInternalDbs(this));
60+
break;
61+
case R.id.btn_clean_internal_sp:
62+
Log.d("cleanInternalSP", "" + CleanUtils.cleanInternalSP(this));
63+
break;
64+
case R.id.btn_clean_external_cache:
65+
Log.d("cleanExternalCache", "" + CleanUtils.cleanExternalCache(this));
66+
break;
67+
}
68+
}
69+
}

0 commit comments

Comments
 (0)