Skip to content

Commit

Permalink
完成自动化统计
Browse files Browse the repository at this point in the history
  • Loading branch information
scwang90 committed Dec 4, 2018
1 parent 6f95169 commit bcda937
Show file tree
Hide file tree
Showing 11 changed files with 189 additions and 45 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
*.iml
*.txt
.project
.classpath
.gradle
/local.properties
/.idea/caches
Expand All @@ -12,3 +15,4 @@
/.idea/markdown-navigator.xml
/build
/bintrayUpload-key.bat

5 changes: 5 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified art/dex-method-counts.jar
Binary file not shown.
83 changes: 58 additions & 25 deletions method-count-layout.bat
Original file line number Diff line number Diff line change
@@ -1,39 +1,72 @@
@ECHO OFF
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Method Count Starter
@rem
@rem ##########################################################################

SET sdk=null
SET tool=null
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal enabledelayedexpansion

FOR /F "delims== tokens=2" %%i IN ('findstr /i "sdk.dir" local.properties') DO SET sdk=%%i
FOR /F "delims=' tokens=2" %%i IN ('findstr /i "buildToolsVersion" %~dp0app\build.gradle') DO SET tool=%%i
set SDK=
set TOOL=

echo tool=%tool%
echo sdk=%sdk%
for /F "delims== tokens=2" %%i IN ('findstr /i "sdk.dir" local.properties') DO SET SDK=%%i
for /F "delims=' tokens=2" %%i IN ('findstr /i "buildToolsVersion" %~dp0app\build.gradle') DO SET TOOL=%%i

IF %sdk% == null (
ECHO 没找到 Android Sdk 路径,脚本中止!
GOTO END
echo TOOL=%TOOL%
echo SDK=%SDK%

if "%SDK%" == "" (
echo 没找到 Android Sdk 路径,脚本中止!
goto end
)
IF %tool% == null (
ECHO 没找到 Android Build Tool 版本,脚本中止!
GOTO END
if "%TOOL%" == "" (
echo 没找到 Android Build Tool 版本,脚本中止!
goto end
)

SET sdk=%sdk:\\=\%
SET sdk=%sdk:\:=:%
set SDK=%SDK:\\=\%
set SDK=%SDK:\:=:%

set MODULE=refresh-layout
set OUTPUT=methods-apk.txt

set PATH_TOOL=%SDK%\build-tools\%TOOL%\dx.bat
set PATH_JAR=%MODULE%/build/intermediates/intermediate-jars/debug/classes.jar
set PATH_DEX=%PATH_JAR%.dex
REM echo PATH_JAR=%PATH_JAR%
REM echo PATH_DEX=%PATH_DEX%

echo 正在构建。。。

SET module=refresh-layout
call ./gradlew assemble
if "%ERRORLEVEL%" == "0" (
echo.
echo 构建成功!,开始生成DEX文件。。。
) else (
echo.
echo 构建失败,脚本中止!
goto end
)

call %PATH_TOOL% --dex --verbose --no-strict --output=%PATH_DEX% %PATH_JAR% >NUL
if "%ERRORLEVEL%" == "0" (
echo.
echo 生成DEX文件成功!,开始统计。。。
) else (
echo.
echo 生成DEX失败,脚本中止!
goto end
)

SET toolPath=%sdk%\build-tools\%tool%\dx.bat
SET jarPath=%module%/build/intermediates/intermediate-jars/debug/classes.jar
SET dexPath=%jarPath%.dex

ECHO jarPath=%jarPath%
ECHO dexPath=%dexPath%
REM set PATH_DEX=%~dp0art/app-debug.apk

CALL ./gradlew assemble
call java -jar ./art/dex-method-counts.jar --filter=all --include-classes --include-detail --output-style=tree --package-filter=android %PATH_DEX% > %OUTPUT%

CALL %toolPath% --dex --verbose --no-strict --output=%dexPath% %jarPath%
call ./method-count-words.bat %OUTPUT% %OUTPUT:.txt=-count.txt%

CALL java -jar ./art/dex-method-counts.jar --filter=all --include-classes --output-style=tree %dexPath%
:end

:END
if "%OS%"=="Windows_NT" endlocal
93 changes: 93 additions & 0 deletions method-count-words.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
@echo off &
setlocal enabledelayedexpansion

set FILE=%1
set OUTPUT=%2

if "%FILE%" == "" (
echo "请输入参数!"
goto :eof
)
REM if "%OUTPUT%" == "" (
REM echo "使用默认参数OUTPUT"
REM set OUTPUT=methods-words.txt
REM )

echo 正在统计单词数量。。。

call :test

echo.
echo 输出统计结果

set number=1

for /f "skip=1 tokens=1,* delims=_=" %%i in ('set _') do set /a number+=1

if "%OUTPUT%" == "" (
echo %number% : Total Words
) else (
echo %number% : Total Words > "%OUTPUT%"
)

for /f "skip=1 tokens=1,* delims=_=" %%i in ('set _') do if "%OUTPUT%" == "" (

set "var=%%i"
set "var=!var:$$$=<!"
set "var=!var:###=>!"

echo %%j : !var!
) else (
set "var=%%i"
set "var=!var:$$$=<!"
set "var=!var:###=>!"

echo %%j : !var!>>"%OUTPUT%"
)

if not "%OUTPUT%" == "" (
echo 开始排序结果
sort -rg "%OUTPUT%">"%OUTPUT:.txt=-sort.txt%"
echo 结果排序结束
)

echo 输出统计结果完成

goto :eof

:test

for /f "delims=" %%l in (%FILE%) do (
set str=%%l
call :calc

)

goto :eof

:calc

for /f "tokens=1,* delims=':.-=%% " %%i in ("%str%") do (
REM echo.
REM echo i=%%i
set /p="." <nul

set "var=%%i"
set "var=!var:<=$$$!"
set "var=!var:>=###!"
REM echo "var=%var%"
REM echo "var=!var!"

REM set /a "_!var!+=1"

REM echo "!var!"|findstr /be "\"[0-9]*\"">nul && ECHO "!var! 是纯数字" || ECHO "!var! 不是数字"
echo "!var!"|findstr /be "\"[0-9]*\"">nul && echo "find">nul || set /a "_!var!+=1"

set "str=%%j" && echo "find">nul || pause
REM echo str=%str%
REM echo str=!str!

if not "%str%"=="" call :calc
)

goto :eof
Original file line number Diff line number Diff line change
Expand Up @@ -1099,7 +1099,10 @@ protected void setStateDirectLoading() {
mRefreshFooter.onStartAnimator(this, mFooterHeight, (int) (mFooterMaxDragRate * mFooterHeight));
}
if (mOnMultiPurposeListener != null && mRefreshFooter instanceof RefreshFooter) {
mOnMultiPurposeListener.onLoadMore(this);
final OnLoadMoreListener listener = mOnMultiPurposeListener;
if (listener != null) {
listener.onLoadMore(this);
}
mOnMultiPurposeListener.onFooterStartAnimator((RefreshFooter) mRefreshFooter, mFooterHeight, (int) (mFooterMaxDragRate * mFooterHeight));
}
}
Expand Down Expand Up @@ -2134,7 +2137,7 @@ public SmartRefreshLayout setRefreshHeader(@NonNull RefreshHeader header, int wi
this.mHeaderBackgroundColor = 0;
this.mHeaderNeedTouchEventWhenRefreshing = false;
this.mHeaderHeightStatus = mHeaderHeightStatus.unNotify();
if (header.getSpinnerStyle() == SpinnerStyle.FixedBehind) {
if (mRefreshHeader.getSpinnerStyle() == SpinnerStyle.FixedBehind) {
super.addView(mRefreshHeader.getView(), 0, new LayoutParams(width, height));
} else {
super.addView(mRefreshHeader.getView(), width, height);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,10 @@ public ClassicsFooter(Context context, AttributeSet attrs, int defStyleAttr) {
}

if (ta.hasValue(R.styleable.ClassicsFooter_srlPrimaryColor)) {
setPrimaryColor(ta.getColor(R.styleable.ClassicsFooter_srlPrimaryColor, 0));
super.setPrimaryColor(ta.getColor(R.styleable.ClassicsFooter_srlPrimaryColor, 0));
}
if (ta.hasValue(R.styleable.ClassicsFooter_srlAccentColor)) {
setAccentColor(ta.getColor(R.styleable.ClassicsFooter_srlAccentColor, 0));
super.setAccentColor(ta.getColor(R.styleable.ClassicsFooter_srlAccentColor, 0));
}

ta.recycle();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ public ClassicsHeader(Context context, AttributeSet attrs, int defStyleAttr) {
}

if (ta.hasValue(R.styleable.ClassicsHeader_srlPrimaryColor)) {
setPrimaryColor(ta.getColor(R.styleable.ClassicsHeader_srlPrimaryColor, 0));
super.setPrimaryColor(ta.getColor(R.styleable.ClassicsHeader_srlPrimaryColor, 0));
}
if (ta.hasValue(R.styleable.ClassicsHeader_srlAccentColor)) {
setAccentColor(ta.getColor(R.styleable.ClassicsHeader_srlAccentColor, 0));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.scwang.smartrefresh.layout.constant.RefreshState;
import com.scwang.smartrefresh.layout.constant.SpinnerStyle;
import com.scwang.smartrefresh.layout.internal.InternalAbstract;
import com.scwang.smartrefresh.layout.listener.OnStateChangedListener;

import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
Expand All @@ -40,7 +41,7 @@ public class TwoLevelHeader extends InternalAbstract implements RefreshHeader/*,
protected int mHeaderHeight;
// protected int mPaintAlpha;
// protected Paint mPaint;
protected RefreshHeader mRefreshHeader;
protected RefreshInternal mRefreshHeader;
protected RefreshKernel mRefreshKernel;
protected OnTwoLevelListener mTwoLevelListener;
// protected SpinnerStyle mSpinnerStyle = SpinnerStyle.FixedBehind;
Expand Down Expand Up @@ -112,7 +113,7 @@ protected void onDetachedFromWindow() {

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
final RefreshHeader refreshHeader = mRefreshHeader;
final RefreshInternal refreshHeader = mRefreshHeader;
if (refreshHeader != null) {
int mode = MeasureSpec.getMode(heightMeasureSpec);
if (mode == MeasureSpec.AT_MOST) {
Expand All @@ -136,7 +137,7 @@ public boolean equals(Object obj) {
@Override
public void onInitialized(@NonNull RefreshKernel kernel, int height, int maxDragHeight) {
final View thisView = this;
final RefreshHeader refreshHeader = mRefreshHeader;
final RefreshInternal refreshHeader = mRefreshHeader;
if (refreshHeader == null) {
return;
}
Expand Down Expand Up @@ -164,9 +165,10 @@ public void onInitialized(@NonNull RefreshKernel kernel, int height, int maxDrag

@Override
public void onStateChanged(@NonNull RefreshLayout refreshLayout, @NonNull RefreshState oldState, @NonNull RefreshState newState) {
final RefreshHeader refreshHeader = mRefreshHeader;
final RefreshInternal refreshHeader = mRefreshHeader;
if (refreshHeader != null) {
refreshHeader.onStateChanged(refreshLayout, oldState, newState);
final OnStateChangedListener listener = mRefreshHeader;
listener.onStateChanged(refreshLayout, oldState, newState);
switch (newState) {
case TwoLevelReleased:
if (refreshHeader.getView() != this) {
Expand Down Expand Up @@ -197,7 +199,7 @@ public void onStateChanged(@NonNull RefreshLayout refreshLayout, @NonNull Refres
@Override
public void onMoving(boolean isDragging, float percent, int offset, int height, int maxDragHeight) {
moveSpinner(offset);
final RefreshHeader refreshHeader = mRefreshHeader;
final RefreshInternal refreshHeader = mRefreshHeader;
final RefreshKernel refreshKernel = mRefreshKernel;
if (refreshHeader != null) {
refreshHeader.onMoving(isDragging, percent, offset, height, maxDragHeight);
Expand All @@ -215,7 +217,7 @@ public void onMoving(boolean isDragging, float percent, int offset, int height,
}

protected void moveSpinner(int spinner) {
final RefreshHeader refreshHeader = mRefreshHeader;
final RefreshInternal refreshHeader = mRefreshHeader;
if (mSpinner != spinner && refreshHeader != null) {
mSpinner = spinner;
switch (refreshHeader.getSpinnerStyle()) {
Expand Down Expand Up @@ -253,16 +255,16 @@ public TwoLevelHeader setRefreshHeader(RefreshHeader header) {
public TwoLevelHeader setRefreshHeader(RefreshHeader header, int width, int height) {
final ViewGroup thisGroup = this;
if (header != null) {
final RefreshHeader refreshHeader = mRefreshHeader;
RefreshInternal refreshHeader = mRefreshHeader;
if (refreshHeader != null) {
thisGroup.removeView(refreshHeader.getView());
}
if (header.getSpinnerStyle() == SpinnerStyle.FixedBehind) {
thisGroup.addView(header.getView(), 0, new LayoutParams(width, height));
refreshHeader = header;
if (refreshHeader.getSpinnerStyle() == SpinnerStyle.FixedBehind) {
thisGroup.addView(refreshHeader.getView(), 0, new LayoutParams(width, height));
} else {
thisGroup.addView(header.getView(), width, height);
thisGroup.addView(refreshHeader.getView(), width, height);
}
// this.mWrappedView = header.getView();
this.mRefreshHeader = header;
this.mWrappedInternal = header;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.scwang.smartrefresh.layout.constant.SpinnerStyle;
import com.scwang.smartrefresh.layout.impl.RefreshFooterWrapper;
import com.scwang.smartrefresh.layout.impl.RefreshHeaderWrapper;
import com.scwang.smartrefresh.layout.listener.OnStateChangedListener;

import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;

Expand Down Expand Up @@ -183,7 +184,10 @@ public void onStateChanged(@NonNull RefreshLayout refreshLayout, @NonNull Refres
newState = newState.toFooter();
}
}
mWrappedInternal.onStateChanged(refreshLayout, oldState, newState);
final OnStateChangedListener listener = mWrappedInternal;
if (listener != null) {
listener.onStateChanged(refreshLayout, oldState, newState);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ public abstract class InternalClassics<T extends InternalClassics> extends Inter
protected ImageView mProgressView;
protected LinearLayout mCenterLayout;
protected RefreshKernel mRefreshKernel;
protected ArrowDrawable mArrowDrawable;
protected ProgressDrawable mProgressDrawable;
protected PaintDrawable mArrowDrawable;
protected PaintDrawable mProgressDrawable;
// protected SpinnerStyle mSpinnerStyle = SpinnerStyle.Translate;
protected Integer mAccentColor;
protected Integer mPrimaryColor;
Expand Down

0 comments on commit bcda937

Please sign in to comment.