Commit 5cffa63e2b4de20b9110d21d3060e04accc6b569
1 parent
19e4f834
删除无用代码
Showing
45 changed files
with
1 additions
and
1642 deletions
C5/app/build.gradle
... | ... | @@ -96,6 +96,7 @@ dependencies { |
96 | 96 | compile 'com.github.barteksc:android-pdf-viewer:2.7.0' |
97 | 97 | compile 'cn.yipianfengye.android:zxing-library:2.2' |
98 | 98 | compile 'com.jaredrummler:android-processes:1.1.1' |
99 | + implementation project(':udpmodule') | |
99 | 100 | } |
100 | 101 | |
101 | 102 | //#解决某些输入文件使用或覆盖了已过时的 API | ... | ... |
C5/sunvoteadapter/.gitignore deleted
1 | -/build |
C5/sunvoteadapter/build.gradle deleted
1 | -apply plugin: 'com.android.library' | |
2 | - | |
3 | -android { | |
4 | - compileSdkVersion 26 | |
5 | - defaultConfig { | |
6 | - minSdkVersion 21 | |
7 | - targetSdkVersion 26 | |
8 | - versionCode 1 | |
9 | - versionName "1.0" | |
10 | - | |
11 | - } | |
12 | - buildTypes { | |
13 | - release { | |
14 | - minifyEnabled false | |
15 | - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |
16 | - } | |
17 | - } | |
18 | - buildToolsVersion '26.0.2' | |
19 | -} | |
20 | - | |
21 | -dependencies { | |
22 | - implementation project(':udpmodule') | |
23 | -} |
C5/sunvoteadapter/proguard-rules.pro deleted
1 | -# Add project specific ProGuard rules here. | |
2 | -# You can control the set of applied configuration files using the | |
3 | -# proguardFiles setting in build.gradle. | |
4 | -# | |
5 | -# For more details, see | |
6 | -# http://developer.android.com/guide/developing/tools/proguard.html | |
7 | - | |
8 | -# If your project uses WebView with JS, uncomment the following | |
9 | -# and specify the fully qualified class name to the JavaScript interface | |
10 | -# class: | |
11 | -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | |
12 | -# public *; | |
13 | -#} | |
14 | - | |
15 | -# Uncomment this to preserve the line number information for | |
16 | -# debugging stack traces. | |
17 | -#-keepattributes SourceFile,LineNumberTable | |
18 | - | |
19 | -# If you keep the line number information, uncomment this to | |
20 | -# hide the original source file name. | |
21 | -#-renamesourcefileattribute SourceFile |
C5/sunvoteadapter/src/main/AndroidManifest.xml deleted
C5/sunvoteadapter/src/main/java/com/sunvote/sunvoteadapter/IBottomCommandReceiver.java deleted
1 | -package com.sunvote.sunvoteadapter; | |
2 | - | |
3 | -import com.sunvote.cmd.ICmd; | |
4 | - | |
5 | -/** | |
6 | - * Created by Elvis on 2017/12/4 14:45 | |
7 | - * Email:Eluis@psunsky.com | |
8 | - * 版权所有:长沙中天电子设计开发有限公司 | |
9 | - * Description: 人大通用版XPadAppRD | |
10 | - */ | |
11 | -public interface IBottomCommandReceiver { | |
12 | - | |
13 | - boolean onReceiverCmd(ICmd cmd); | |
14 | - | |
15 | -} |
C5/sunvoteadapter/src/main/java/com/sunvote/sunvoteadapter/SunVoteAdapterManagerFactroy.java deleted
1 | -package com.sunvote.sunvoteadapter; | |
2 | - | |
3 | -import com.sunvote.cmd.BaseCmd; | |
4 | -import com.sunvote.cmd.ICmd; | |
5 | -import com.sunvote.protocal.Protocol; | |
6 | -import com.sunvote.udptransfer.UDPModule; | |
7 | -import com.sunvote.udptransfer.work.WorkThread; | |
8 | -import com.sunvote.util.ByteUtil; | |
9 | -import com.sunvote.util.LogUtil; | |
10 | - | |
11 | -import java.io.ByteArrayOutputStream; | |
12 | -import java.io.IOException; | |
13 | -import java.io.InputStream; | |
14 | -import java.io.OutputStream; | |
15 | -import java.util.ArrayList; | |
16 | -import java.util.List; | |
17 | - | |
18 | -/** | |
19 | - * Created by Elvis on 2017/11/29 17:07 | |
20 | - * Email:Eluis@psunsky.com | |
21 | - * 版权所有:长沙中天电子设计开发有限公司 | |
22 | - * Description: SunVoteAdapterManagerFactroy | |
23 | - */ | |
24 | -public class SunVoteAdapterManagerFactroy { | |
25 | - private static volatile SunVoteAdapterManagerFactroy ourInstance = null; | |
26 | - private static String TAG = "SunVote"; | |
27 | - | |
28 | - private UDPModule client = null; | |
29 | - | |
30 | - private InputStream mInputStream; | |
31 | - private OutputStream mOutputStream; | |
32 | - private WorkThread receiverWorkThread; | |
33 | - private boolean isRunning = false; | |
34 | - | |
35 | - private List<IBottomCommandReceiver> mCommandReceivingList = new ArrayList<>(); | |
36 | - | |
37 | - public boolean isRunning() { | |
38 | - return isRunning; | |
39 | - } | |
40 | - | |
41 | - public static SunVoteAdapterManagerFactroy getInstance() { | |
42 | - if(ourInstance == null){ | |
43 | - synchronized (SunVoteAdapterManagerFactroy.class){ | |
44 | - if(ourInstance == null){ | |
45 | - ourInstance = new SunVoteAdapterManagerFactroy(); | |
46 | - } | |
47 | - } | |
48 | - } | |
49 | - return ourInstance; | |
50 | - } | |
51 | - | |
52 | - public void registerCommandReceiverListener(IBottomCommandReceiver receiver){ | |
53 | - mCommandReceivingList.add(receiver); | |
54 | - } | |
55 | - | |
56 | - public void unRegisterCommandReceiverListener(IBottomCommandReceiver receiver){ | |
57 | - mCommandReceivingList.remove(receiver); | |
58 | - } | |
59 | - | |
60 | - public void clearReceiverListener(){ | |
61 | - mCommandReceivingList.clear(); | |
62 | - } | |
63 | - | |
64 | - private SunVoteAdapterManagerFactroy() { | |
65 | - } | |
66 | - | |
67 | - public void start(){ | |
68 | - if(!isRunning()) { | |
69 | - isRunning = true; | |
70 | - client = new UDPModule(); | |
71 | - mOutputStream = client.getOutputStream(); | |
72 | - mInputStream = client.getInputStream(); | |
73 | - if (receiverWorkThread != null) { | |
74 | - receiverWorkThread.destroyObject(); | |
75 | - } | |
76 | - receiverWorkThread = new WorkThread("SunVoteAdapterManagerFactroy"); | |
77 | - reciveMsgBean.executeMethod = executeMethod; | |
78 | - receiverWorkThread.sendMessage(reciveMsgBean); | |
79 | - } | |
80 | - } | |
81 | - | |
82 | - public void stop(){ | |
83 | - if(isRunning()){ | |
84 | - isRunning = false; | |
85 | - if (receiverWorkThread != null) { | |
86 | - receiverWorkThread.destroyObject(); | |
87 | - } | |
88 | - if(mInputStream != null) { | |
89 | - try { | |
90 | - mInputStream.close(); | |
91 | - } catch (IOException e) { | |
92 | - LogUtil.e(TAG,e); | |
93 | - } | |
94 | - mInputStream = null; | |
95 | - } | |
96 | - if(mOutputStream != null){ | |
97 | - try { | |
98 | - mOutputStream.close(); | |
99 | - } catch (IOException e) { | |
100 | - LogUtil.e(TAG,e); | |
101 | - } | |
102 | - } | |
103 | - mOutputStream = null; | |
104 | - client = null; | |
105 | - } | |
106 | - } | |
107 | - | |
108 | - private WorkThread.MessageBean reciveMsgBean = new WorkThread.MessageBean(); | |
109 | - | |
110 | - private WorkThread.ExecuteMethod executeMethod = new WorkThread.ExecuteMethod() { | |
111 | - @Override | |
112 | - public void execute(WorkThread.MessageBean messageBean) { | |
113 | - if(mInputStream != null){ | |
114 | - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); | |
115 | - byte[] bytes = new byte[1024]; | |
116 | - int tmpLength = -1 ; | |
117 | - while(isRunning()){ | |
118 | - try { | |
119 | - tmpLength = mInputStream.read(bytes); | |
120 | - if(tmpLength < 0){ | |
121 | - break; | |
122 | - } | |
123 | - // 1. 先检测读取数据到缓冲区 | |
124 | - byteArrayOutputStream.write(bytes,0,tmpLength); | |
125 | - // 2. 判断缓冲区的数据标志是否存在 | |
126 | - if(byteArrayOutputStream.size() >= 3){ | |
127 | - byte[] temp = byteArrayOutputStream.toByteArray(); | |
128 | - int find = ByteUtil.findBytes(temp,Protocol.HEADER,0); | |
129 | - if(find >= 0){ | |
130 | - // 3. 标志存在,则继续读取长度 | |
131 | - if(byteArrayOutputStream.size() >= find + 4){ | |
132 | - int length = ByteUtil.byte1ToInt(byteArrayOutputStream.toByteArray()[find+3]); | |
133 | - if(byteArrayOutputStream.size() >= find + 4 + length){ | |
134 | - ByteArrayOutputStream tmp = new ByteArrayOutputStream(); | |
135 | - // 4. 根据长度读取包的内容 | |
136 | - for(int i = find ; i < find + 4 + length;i++){ | |
137 | - // 5. 截取包的内容,向外抛出,处理,接着读取下一个包 | |
138 | - tmp.write(temp[i]); | |
139 | - } | |
140 | - // 6. 抛出处理 | |
141 | - LogUtil.i(TAG,"命令包数据",tmp.toByteArray()); | |
142 | - ICmd cmd = BaseCmd.parse(tmp.toByteArray(),tmp.size()); | |
143 | - sendCmdToCall(cmd); | |
144 | - // 7. 剩余数据重新打包处理 | |
145 | -// byteArrayOutputStream = new ByteArrayOutputStream(); | |
146 | - byteArrayOutputStream.reset(); | |
147 | - for(int i = find + 4 + length ; i < temp.length ; i++) { | |
148 | - byteArrayOutputStream.write(temp[i]); | |
149 | - } | |
150 | - } | |
151 | - } | |
152 | - } | |
153 | - } | |
154 | - if(byteArrayOutputStream.size() > 2048){ | |
155 | - LogUtil.i(TAG,"被恶意攻击?或者传输数据错误?丢弃处理!",byteArrayOutputStream.toByteArray()); | |
156 | - byteArrayOutputStream.reset(); | |
157 | - } | |
158 | - } catch (Exception e) { | |
159 | - LogUtil.e(TAG,e); | |
160 | - } | |
161 | - } | |
162 | - } | |
163 | - } | |
164 | - }; | |
165 | - | |
166 | - public boolean sendCmd(ICmd cmd){ | |
167 | - if(isRunning()) { | |
168 | - Protocol<ICmd> protocol = new Protocol<>(); | |
169 | - protocol.setEnableMatchCode(false); | |
170 | - protocol.setCmd(cmd); | |
171 | - if (mOutputStream != null) { | |
172 | - try { | |
173 | - mOutputStream.write(protocol.toBytes()); | |
174 | - mOutputStream.flush(); | |
175 | - return true; | |
176 | - } catch (Exception e) { | |
177 | - LogUtil.e(TAG, e); | |
178 | - } | |
179 | - } | |
180 | - } | |
181 | - return false; | |
182 | - } | |
183 | - | |
184 | - private void sendCmdToCall(ICmd cmd){ | |
185 | - if(mCommandReceivingList != null && mCommandReceivingList.size() > 0) { | |
186 | - for (IBottomCommandReceiver receiver : mCommandReceivingList) { | |
187 | - receiver.onReceiverCmd(cmd); | |
188 | - } | |
189 | - } | |
190 | - } | |
191 | - | |
192 | -} |
C5/sunvoteadapter/src/main/res/values/strings.xml deleted
C5/testproject/.gitignore deleted
1 | -/build |
C5/testproject/build.gradle deleted
1 | -apply plugin: 'com.android.application' | |
2 | - | |
3 | -android { | |
4 | - compileSdkVersion 26 | |
5 | - buildToolsVersion "26.0.2" | |
6 | - defaultConfig { | |
7 | - minSdkVersion 21 | |
8 | - targetSdkVersion 26 | |
9 | - applicationId "com.sunvote.udptest" | |
10 | - versionCode 1 | |
11 | - versionName "1.0" | |
12 | - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | |
13 | - } | |
14 | - buildTypes { | |
15 | - release { | |
16 | - minifyEnabled false | |
17 | - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |
18 | - } | |
19 | - } | |
20 | - productFlavors { | |
21 | - } | |
22 | -} | |
23 | - | |
24 | -dependencies { | |
25 | - compile fileTree(include: ['*.jar'], dir: 'libs') | |
26 | - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { | |
27 | - exclude group: 'com.android.support', module: 'support-annotations' | |
28 | - }) | |
29 | - compile 'com.android.support:appcompat-v7:26.+' | |
30 | - compile 'com.android.support.constraint:constraint-layout:1.0.2' | |
31 | - compile 'com.android.support:design:26.+' | |
32 | - testCompile 'junit:junit:4.12' | |
33 | - implementation project(':sunvotesdk') | |
34 | - implementation 'com.squareup.okhttp3:okhttp:3.11.0' | |
35 | -} |
C5/testproject/proguard-rules.pro deleted
1 | -# Add project specific ProGuard rules here. | |
2 | -# By default, the flags in this file are appended to flags specified | |
3 | -# in C:\Users\XXW\AppData\Local\Android\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 | -# Uncomment this to preserve the line number information for | |
20 | -# debugging stack traces. | |
21 | -#-keepattributes SourceFile,LineNumberTable | |
22 | - | |
23 | -# If you keep the line number information, uncomment this to | |
24 | -# hide the original source file name. | |
25 | -#-renamesourcefileattribute SourceFile |
C5/testproject/release/output.json deleted
C5/testproject/src/androidTest/java/com/sunvote/udptest/ExampleInstrumentedTest.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import android.content.Context; | |
4 | -import android.support.test.InstrumentationRegistry; | |
5 | -import android.support.test.runner.AndroidJUnit4; | |
6 | - | |
7 | -import org.junit.Test; | |
8 | -import org.junit.runner.RunWith; | |
9 | - | |
10 | -import static org.junit.Assert.*; | |
11 | - | |
12 | -/** | |
13 | - * Instrumentation test, which will execute on an Android device. | |
14 | - * | |
15 | - * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> | |
16 | - */ | |
17 | -@RunWith(AndroidJUnit4.class) | |
18 | -public class ExampleInstrumentedTest { | |
19 | - @Test | |
20 | - public void useAppContext() throws Exception { | |
21 | - // Context of the app under test. | |
22 | - Context appContext = InstrumentationRegistry.getTargetContext(); | |
23 | - | |
24 | - assertEquals("com.sunvote.udptest", appContext.getPackageName()); | |
25 | - } | |
26 | -} |
C5/testproject/src/main/AndroidManifest.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - package="com.sunvote.udptest"> | |
4 | - | |
5 | - <uses-permission android:name="android.permission.INTERNET" /> | |
6 | - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | |
7 | - | |
8 | - <application | |
9 | - android:allowBackup="true" | |
10 | - android:icon="@mipmap/ic_launcher" | |
11 | - android:label="@string/app_name" | |
12 | - android:roundIcon="@mipmap/ic_launcher_round" | |
13 | - android:supportsRtl="true" | |
14 | - android:theme="@style/AppTheme"> | |
15 | - <activity android:name=".MainActivity" /> | |
16 | - <activity | |
17 | - android:name=".FontSizeActity" | |
18 | - android:label="@string/title_activity_font_size_actity" | |
19 | - android:theme="@style/AppTheme.NoActionBar" /> | |
20 | - <activity | |
21 | - android:name=".WebActivity" | |
22 | - android:theme="@style/AppTheme.NoActionBar" /> | |
23 | - <activity | |
24 | - android:name=".ModifyMachCode" | |
25 | - android:label="@string/title_activity_modify_mach_code" | |
26 | - android:theme="@style/AppTheme.NoActionBar" /> | |
27 | - <activity android:name=".Main2Activity"> | |
28 | - | |
29 | - <!-- | |
30 | - <intent-filter> | |
31 | - <action android:name="android.intent.action.MAIN" /> | |
32 | - | |
33 | - <category android:name="android.intent.category.LAUNCHER" /> | |
34 | - </intent-filter> | |
35 | - --> | |
36 | - </activity> | |
37 | - <activity android:name=".Main3Activity"> | |
38 | - | |
39 | - <!-- | |
40 | - <intent-filter> | |
41 | - <action android:name="android.intent.action.MAIN" /> | |
42 | - | |
43 | - <category android:name="android.intent.category.LAUNCHER" /> | |
44 | - </intent-filter> | |
45 | - --> | |
46 | - </activity> | |
47 | - <activity android:name=".UploadActivity" | |
48 | - android:screenOrientation="portrait"> | |
49 | - <intent-filter> | |
50 | - <action android:name="android.intent.action.MAIN" /> | |
51 | - | |
52 | - <category android:name="android.intent.category.LAUNCHER" /> | |
53 | - </intent-filter> | |
54 | - </activity> | |
55 | - <activity | |
56 | - android:name=".UnlockActivity" | |
57 | - android:label="@string/title_activity_unlock" | |
58 | - android:screenOrientation="landscape" | |
59 | - android:theme="@style/AppTheme.NoActionBar"> | |
60 | - <intent-filter> | |
61 | - <action android:name="android.intent.action.MAIN" /> | |
62 | - | |
63 | - <category android:name="android.intent.category.LAUNCHER" /> | |
64 | - </intent-filter> | |
65 | - </activity> | |
66 | - </application> | |
67 | - | |
68 | -</manifest> | |
69 | 0 | \ No newline at end of file |
C5/testproject/src/main/java/com/sunvote/udptest/FontSizeActity.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import android.os.Bundle; | |
4 | -import android.support.design.widget.FloatingActionButton; | |
5 | -import android.support.design.widget.Snackbar; | |
6 | -import android.support.v7.app.AppCompatActivity; | |
7 | -import android.support.v7.widget.Toolbar; | |
8 | -import android.view.View; | |
9 | - | |
10 | -public class FontSizeActity extends AppCompatActivity { | |
11 | - | |
12 | - @Override | |
13 | - protected void onCreate(Bundle savedInstanceState) { | |
14 | - super.onCreate(savedInstanceState); | |
15 | - setContentView(R.layout.activity_font_size_actity); | |
16 | - | |
17 | - } | |
18 | - | |
19 | -} |
C5/testproject/src/main/java/com/sunvote/udptest/LocalUDPDataSender.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import java.net.DatagramSocket; | |
4 | -import java.net.InetAddress; | |
5 | - | |
6 | -/** | |
7 | - * Created by Elvis on 2017/8/8. | |
8 | - * Email:Eluis@psunsky.com | |
9 | - * Description: | |
10 | - */ | |
11 | - | |
12 | -public class LocalUDPDataSender { | |
13 | - | |
14 | - private final static String TAG = LocalUDPDataSender.class.getSimpleName(); | |
15 | - | |
16 | - private static LocalUDPDataSender instance = null; | |
17 | - | |
18 | - private DatagramSocket remoteUDPSocket = null; | |
19 | - | |
20 | - | |
21 | - public static LocalUDPDataSender getInstance() { | |
22 | - if (instance == null) | |
23 | - instance = new LocalUDPDataSender(); | |
24 | - return instance; | |
25 | - } | |
26 | - | |
27 | - private LocalUDPDataSender() { | |
28 | - | |
29 | - } | |
30 | - | |
31 | - public DatagramSocket resetRemoteUDPSocket() { | |
32 | - try { | |
33 | - closeLocalUDPSocket(); | |
34 | - remoteUDPSocket = (MainActivity.port == 0 ? | |
35 | - new DatagramSocket() : new DatagramSocket(MainActivity.port));//_Utils.LOCAL_UDP_SEND$LISTENING_PORT); | |
36 | - remoteUDPSocket.setReuseAddress(true); | |
37 | - return remoteUDPSocket; | |
38 | - } catch (Exception e) { | |
39 | - closeLocalUDPSocket(); | |
40 | - return null; | |
41 | - } | |
42 | - } | |
43 | - | |
44 | - private boolean isRemoteUDPSocketReady() { | |
45 | - boolean ret = true; | |
46 | - if(remoteUDPSocket != null) { | |
47 | - return ret && !remoteUDPSocket.isClosed(); | |
48 | - } | |
49 | - return false; | |
50 | - } | |
51 | - | |
52 | - | |
53 | - | |
54 | - public void closeLocalUDPSocket() { | |
55 | - try { | |
56 | - if (remoteUDPSocket != null) { | |
57 | - remoteUDPSocket.close(); | |
58 | - remoteUDPSocket = null; | |
59 | - } else { | |
60 | - } | |
61 | - } catch (Exception e) { | |
62 | - } | |
63 | - } | |
64 | - | |
65 | - public DatagramSocket getRemoteDPSocket() { | |
66 | - if (isRemoteUDPSocketReady()) { | |
67 | - return remoteUDPSocket; | |
68 | - } else { | |
69 | - return resetRemoteUDPSocket(); | |
70 | - } | |
71 | - } | |
72 | - | |
73 | - | |
74 | - | |
75 | - /** | |
76 | - * 需要重载一个函数 | |
77 | - * 如果没有指定服务器IP地址,则只能广播出去,让服务器接收处理 | |
78 | - * @param fullProtocalBytes | |
79 | - * @param dataLen | |
80 | - * @return | |
81 | - */ | |
82 | - public int send(byte[] fullProtocalBytes, int dataLen) { | |
83 | - DatagramSocket ds = getRemoteDPSocket(); | |
84 | - if (ds != null && !ds.isConnected()) { | |
85 | - try { | |
86 | - ds.connect(InetAddress.getByName(MainActivity.serverIp), MainActivity.port); | |
87 | - } catch (Exception e) { | |
88 | - return -1; | |
89 | - } | |
90 | - } | |
91 | - return UDPUtils.send(ds, fullProtocalBytes, dataLen) ? 0 : -1; | |
92 | - | |
93 | - } | |
94 | - | |
95 | - | |
96 | -} |
C5/testproject/src/main/java/com/sunvote/udptest/LocalUDPSocketProvider.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import java.net.DatagramSocket; | |
4 | -import java.net.SocketAddress; | |
5 | - | |
6 | -/** | |
7 | - * Created by Elvis on 2017/8/8. | |
8 | - * Email:Eluis@psunsky.com | |
9 | - * Description: | |
10 | - * 本地UDP提供类 | |
11 | - */ | |
12 | - | |
13 | -public class LocalUDPSocketProvider { | |
14 | - private final static String TAG = LocalUDPSocketProvider.class.getSimpleName(); | |
15 | - | |
16 | - private static LocalUDPSocketProvider instance = null; | |
17 | - | |
18 | - private DatagramSocket localUDPSocket = null; | |
19 | - | |
20 | - public static LocalUDPSocketProvider getInstance() { | |
21 | - if (instance == null) | |
22 | - instance = new LocalUDPSocketProvider(); | |
23 | - return instance; | |
24 | - } | |
25 | - | |
26 | - private LocalUDPSocketProvider() { | |
27 | - // | |
28 | - } | |
29 | - | |
30 | - public DatagramSocket resetLocalUDPSocket() { | |
31 | - try { | |
32 | - closeLocalUDPSocket(); | |
33 | - localUDPSocket = new DatagramSocket(Main2Activity.port);//_Utils.LOCAL_UDP_SEND$LISTENING_PORT); | |
34 | - //Config.getInstance().localUDPPort | |
35 | - localUDPSocket.setReuseAddress(true); | |
36 | - localUDPSocket.setSoTimeout(60 * 10000); | |
37 | - return localUDPSocket; | |
38 | - } catch (Exception e) { | |
39 | - closeLocalUDPSocket(); | |
40 | - return null; | |
41 | - } | |
42 | - } | |
43 | - | |
44 | - private boolean isLocalUDPSocketReady() { | |
45 | - boolean ret = true; | |
46 | - if(localUDPSocket != null) { | |
47 | - SocketAddress socketAddress = localUDPSocket.getRemoteSocketAddress(); | |
48 | - if (socketAddress != null) { | |
49 | - if(!"".equals(Main2Activity.ip)){ | |
50 | - ret = socketAddress.toString().contains(Main2Activity.ip); | |
51 | - } | |
52 | - } | |
53 | - return ret && !localUDPSocket.isClosed(); | |
54 | - } | |
55 | - return false; | |
56 | - } | |
57 | - | |
58 | - public DatagramSocket getLocalUDPSocket() { | |
59 | - if (isLocalUDPSocketReady()) { | |
60 | - return localUDPSocket; | |
61 | - } else { | |
62 | - return resetLocalUDPSocket(); | |
63 | - } | |
64 | - } | |
65 | - | |
66 | - public void closeLocalUDPSocket() { | |
67 | - try { | |
68 | - if (localUDPSocket != null) { | |
69 | - localUDPSocket.close(); | |
70 | - localUDPSocket = null; | |
71 | - } else { | |
72 | - } | |
73 | - } catch (Exception e) { | |
74 | - } | |
75 | - } | |
76 | -} |
C5/testproject/src/main/java/com/sunvote/udptest/Main2Activity.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import android.os.Handler; | |
4 | -import android.support.v7.app.AppCompatActivity; | |
5 | -import android.os.Bundle; | |
6 | -import android.text.TextUtils; | |
7 | -import android.view.View; | |
8 | -import android.widget.Button; | |
9 | -import android.widget.TextView; | |
10 | - | |
11 | -import com.sunvote.util.ByteUtils; | |
12 | - | |
13 | -import java.net.DatagramPacket; | |
14 | -import java.net.DatagramSocket; | |
15 | - | |
16 | -public class Main2Activity extends AppCompatActivity { | |
17 | - | |
18 | - public static int port = 40003; | |
19 | - | |
20 | - public static String ip ; | |
21 | - | |
22 | - private TextView display; | |
23 | - private Button button; | |
24 | - private int cou = 0 ; | |
25 | - StringBuilder stringBuilder = new StringBuilder(); | |
26 | - private String count ; | |
27 | - | |
28 | - private boolean isCrate = false; | |
29 | - private Handler handler ; | |
30 | - | |
31 | - @Override | |
32 | - protected void onCreate(Bundle savedInstanceState) { | |
33 | - super.onCreate(savedInstanceState); | |
34 | - setContentView(R.layout.activity_main2); | |
35 | - | |
36 | - display = (TextView) findViewById(R.id.display); | |
37 | - button = (Button) findViewById(R.id.clean); | |
38 | - | |
39 | - button.setOnClickListener(new View.OnClickListener() { | |
40 | - @Override | |
41 | - public void onClick(View v) { | |
42 | - stringBuilder = new StringBuilder(); | |
43 | - cou = 0 ; | |
44 | - display.setText("收到" + cou + "条消息\n"+ stringBuilder.toString()); | |
45 | - } | |
46 | - }); | |
47 | - | |
48 | - isCrate = true; | |
49 | - handler = new Handler(); | |
50 | - thread.start(); | |
51 | - } | |
52 | - | |
53 | - @Override | |
54 | - protected void onDestroy() { | |
55 | - super.onDestroy(); | |
56 | - isCrate = false; | |
57 | - } | |
58 | - | |
59 | - private Thread thread = new Thread(){ | |
60 | - @Override | |
61 | - public void run() { | |
62 | - super.run(); | |
63 | - | |
64 | - DatagramSocket localUDPSocket = LocalUDPSocketProvider.getInstance().getLocalUDPSocket(); | |
65 | - while (isCrate){ | |
66 | - if (localUDPSocket != null && !localUDPSocket.isClosed()) { | |
67 | - try { | |
68 | - byte[] data = new byte[1024]; | |
69 | - DatagramPacket packet = new DatagramPacket(data, data.length); | |
70 | - localUDPSocket.receive(packet); | |
71 | - stringBuilder.append(ByteUtils.bytesToHexString(packet.getData(),packet.getLength())).append("\n"); | |
72 | - cou ++ ; | |
73 | - handler.post(new Runnable() { | |
74 | - @Override | |
75 | - public void run() { | |
76 | - display.setText("收到" + cou + "条消息\n"+ stringBuilder.toString()); | |
77 | - } | |
78 | - }); | |
79 | - }catch (Exception ex){ | |
80 | - | |
81 | - } | |
82 | - } | |
83 | - | |
84 | - } | |
85 | - } | |
86 | - }; | |
87 | -} |
C5/testproject/src/main/java/com/sunvote/udptest/MainActivity.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import android.support.v7.app.AppCompatActivity; | |
4 | -import android.os.Bundle; | |
5 | -import android.text.Html; | |
6 | -import android.text.TextUtils; | |
7 | -import android.view.View; | |
8 | -import android.widget.EditText; | |
9 | -import android.widget.TextView; | |
10 | -import android.widget.Toast; | |
11 | - | |
12 | -import java.net.DatagramSocket; | |
13 | -import java.net.InetAddress; | |
14 | - | |
15 | -public class MainActivity extends AppCompatActivity { | |
16 | - | |
17 | - private EditText sreverIpView; | |
18 | - private EditText serverPortView; | |
19 | - private EditText contentView; | |
20 | - | |
21 | - private TextView webviewtest; | |
22 | - | |
23 | - private View test; | |
24 | - | |
25 | - public static String serverIp = "192.168.0.104"; | |
26 | - public static int port ; | |
27 | - private String content; | |
28 | - | |
29 | - @Override | |
30 | - protected void onCreate(Bundle savedInstanceState) { | |
31 | - super.onCreate(savedInstanceState); | |
32 | - setContentView(R.layout.activity_main); | |
33 | - | |
34 | - initView(); | |
35 | - | |
36 | - } | |
37 | - | |
38 | - private void initView() { | |
39 | - sreverIpView = (EditText) findViewById(R.id.server_ip); | |
40 | - serverPortView = (EditText) findViewById(R.id.server_port); | |
41 | - contentView = (EditText)findViewById(R.id.content); | |
42 | - webviewtest = (TextView)findViewById(R.id.webviewtest); | |
43 | - | |
44 | - test = findViewById(R.id.test); | |
45 | - | |
46 | - webviewtest.setText(Html.fromHtml("<img alt=\"菁优网\" src=\"http://img.jyeoo.net/quiz/images/201410/118/38290219.png\" style=\"vertical-align:middle;FLOAT:right;\" />解:如图所示:∵在△ABC中,∠C=90°,有一点既在BC的对称轴上,又在AC的对称轴上,<br />∴由直角三角形斜边的中点到三角形三个顶点的距离相等,则该点一定是AB中点.<br />故选:D.")); | |
47 | - | |
48 | - test.setOnClickListener(new View.OnClickListener() { | |
49 | - @Override | |
50 | - public void onClick(View view) { | |
51 | - serverIp = sreverIpView.getText().toString(); | |
52 | - try{ | |
53 | - port = Integer.parseInt(serverPortView.getText().toString()); | |
54 | - }catch (Exception ex){ | |
55 | - Toast.makeText(MainActivity.this,"端口错误",Toast.LENGTH_SHORT).show(); | |
56 | - return; | |
57 | - } | |
58 | - content = contentView.getText().toString(); | |
59 | - content = content.replace(" ",""); | |
60 | - | |
61 | - if(TextUtils.isEmpty(serverIp)){ | |
62 | - Toast.makeText(MainActivity.this,"ip 為空",Toast.LENGTH_SHORT).show(); | |
63 | - return; | |
64 | - } | |
65 | - | |
66 | - if(TextUtils.isEmpty(content)){ | |
67 | - Toast.makeText(MainActivity.this,"ip 輸入發送內容為空",Toast.LENGTH_SHORT).show(); | |
68 | - return; | |
69 | - } | |
70 | - | |
71 | - new Thread(){ | |
72 | - public void run(){ | |
73 | - byte[] datas = hexStringToBytes(content); | |
74 | - boolean ret = false; | |
75 | - try{ | |
76 | - InetAddress address = InetAddress.getByName(serverIp); | |
77 | - ret = LocalUDPDataSender.getInstance().send(datas,datas.length)>=0; | |
78 | - }catch (Exception ex){ | |
79 | - ret = false; | |
80 | - } | |
81 | - final boolean result = ret; | |
82 | - runOnUiThread(new Runnable() { | |
83 | - @Override | |
84 | - public void run() { | |
85 | - Toast.makeText(MainActivity.this,"send:" + result,Toast.LENGTH_SHORT).show(); | |
86 | - } | |
87 | - }); | |
88 | - } | |
89 | - }.start(); | |
90 | - } | |
91 | - }); | |
92 | - } | |
93 | - | |
94 | - public static byte[] hexStringToBytes(String hexString) { | |
95 | - if (hexString == null || hexString.equals("")) { | |
96 | - return null; | |
97 | - } | |
98 | - hexString = hexString.toUpperCase(); | |
99 | - int length = hexString.length() / 2; | |
100 | - char[] hexChars = hexString.toCharArray(); | |
101 | - byte[] d = new byte[length]; | |
102 | - for (int i = 0; i < length; i++) { | |
103 | - int pos = i * 2; | |
104 | - d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1])); | |
105 | - } | |
106 | - return d; | |
107 | - } | |
108 | - /** | |
109 | - * Convert char to byte | |
110 | - * @param c char | |
111 | - * @return byte | |
112 | - */ | |
113 | - private static byte charToByte(char c) { | |
114 | - return (byte) "0123456789ABCDEF".indexOf(c); | |
115 | - } | |
116 | -} |
C5/testproject/src/main/java/com/sunvote/udptest/ModifyMachCode.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import android.os.Bundle; | |
4 | -import android.support.v7.app.AppCompatActivity; | |
5 | -import android.view.View; | |
6 | -import android.widget.Button; | |
7 | -import android.widget.EditText; | |
8 | -import android.widget.Toast; | |
9 | - | |
10 | -import com.sunvote.sunvotesdk.BaseStationManager; | |
11 | - | |
12 | -public class ModifyMachCode extends AppCompatActivity { | |
13 | - | |
14 | - private Button modify; | |
15 | - private EditText content; | |
16 | - @Override | |
17 | - protected void onCreate(Bundle savedInstanceState) { | |
18 | - super.onCreate(savedInstanceState); | |
19 | - setContentView(R.layout.content_modify_mach_code); | |
20 | - | |
21 | - BaseStationManager.getInstance().connectSer(); | |
22 | - content = (EditText) findViewById(R.id.content); | |
23 | - modify = (Button)findViewById(R.id.modify); | |
24 | - modify.setOnClickListener(new View.OnClickListener() { | |
25 | - @Override | |
26 | - public void onClick(View v) { | |
27 | - String machcode = content.getText().toString(); | |
28 | - if(machcode != null && machcode.length() == 8){ | |
29 | - if(BaseStationManager.getInstance().getBaseStationInfo().isConnected()) { | |
30 | - BaseStationManager.getInstance().writeMatchCode(machcode); | |
31 | - Toast.makeText(ModifyMachCode.this,"修改成功",Toast.LENGTH_LONG).show(); | |
32 | - }else{ | |
33 | - Toast.makeText(ModifyMachCode.this,"修改失败",Toast.LENGTH_LONG).show(); | |
34 | - BaseStationManager.getInstance().connectSer(); | |
35 | - } | |
36 | - | |
37 | - }else{ | |
38 | - Toast.makeText(ModifyMachCode.this,"配对码输入不正确",Toast.LENGTH_LONG).show(); | |
39 | - } | |
40 | - } | |
41 | - }); | |
42 | - } | |
43 | - | |
44 | -} |
C5/testproject/src/main/java/com/sunvote/udptest/UDPUtils.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import java.net.DatagramPacket; | |
4 | -import java.net.DatagramSocket; | |
5 | - | |
6 | -/** | |
7 | - * Created by Elvis on 2017/8/8. | |
8 | - * Email:Eluis@psunsky.com | |
9 | - * Description: UDP发送工具类 | |
10 | - */ | |
11 | - | |
12 | -public class UDPUtils { | |
13 | - | |
14 | - private final static String TAG = UDPUtils.class.getSimpleName(); | |
15 | - | |
16 | - public static boolean send(DatagramSocket skt, byte[] d, int dataLen) { | |
17 | - if (skt != null && d != null) { | |
18 | - try { | |
19 | - return send(skt, new DatagramPacket(d, dataLen)); | |
20 | - } catch (Exception e) { | |
21 | - return false; | |
22 | - } | |
23 | - } else { | |
24 | - return false; | |
25 | - } | |
26 | - } | |
27 | - | |
28 | - public synchronized static boolean send(DatagramSocket skt, DatagramPacket p) { | |
29 | - boolean sendSucess = true; | |
30 | - if (skt != null && p != null) { | |
31 | - if (skt.isConnected()) { | |
32 | - try { | |
33 | - skt.send(p); | |
34 | - } catch (Exception e) { | |
35 | - try{ | |
36 | - skt.close(); | |
37 | - }catch (Exception ex){} | |
38 | - sendSucess = false; | |
39 | - } | |
40 | - } | |
41 | - } else { | |
42 | - } | |
43 | - | |
44 | - return sendSucess; | |
45 | - } | |
46 | -} |
C5/testproject/src/main/java/com/sunvote/udptest/WebActivity.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import android.app.Activity; | |
4 | -import android.graphics.Bitmap; | |
5 | -import android.net.http.SslError; | |
6 | -import android.os.Bundle; | |
7 | -import android.os.Environment; | |
8 | -import android.os.Handler; | |
9 | -import android.os.Message; | |
10 | -import android.view.KeyEvent; | |
11 | -import android.webkit.ClientCertRequest; | |
12 | -import android.webkit.HttpAuthHandler; | |
13 | -import android.webkit.RenderProcessGoneDetail; | |
14 | -import android.webkit.SslErrorHandler; | |
15 | -import android.webkit.WebChromeClient; | |
16 | -import android.webkit.WebResourceError; | |
17 | -import android.webkit.WebResourceRequest; | |
18 | -import android.webkit.WebResourceResponse; | |
19 | -import android.webkit.WebView; | |
20 | -import android.webkit.WebViewClient; | |
21 | -import android.widget.TextView; | |
22 | - | |
23 | -import java.io.BufferedReader; | |
24 | -import java.io.File; | |
25 | -import java.io.FileNotFoundException; | |
26 | -import java.io.FileReader; | |
27 | -import java.io.IOException; | |
28 | -import java.io.InputStream; | |
29 | -import java.net.HttpURLConnection; | |
30 | -import java.net.MalformedURLException; | |
31 | -import java.net.URL; | |
32 | -import java.net.URLConnection; | |
33 | -import java.util.Date; | |
34 | - | |
35 | -public class WebActivity extends Activity { | |
36 | - | |
37 | - private WebView webView; | |
38 | - private Handler handler; | |
39 | - private TextView msg; | |
40 | - private String url; | |
41 | - private int errorCount = 0; | |
42 | - private int successCount = 0; | |
43 | - private boolean last = true; | |
44 | - private String current; | |
45 | - | |
46 | - @Override | |
47 | - protected void onCreate(Bundle savedInstanceState) { | |
48 | - super.onCreate(savedInstanceState); | |
49 | - setContentView(R.layout.content_base); | |
50 | - webView = (WebView) findViewById(R.id.webview); | |
51 | - msg = (TextView) findViewById(R.id.msg); | |
52 | - handler = new Handler(); | |
53 | - } | |
54 | - | |
55 | - @Override | |
56 | - protected void onResume() { | |
57 | - super.onResume(); | |
58 | - initIp(); | |
59 | - if (url != null) { | |
60 | - handler.post(runnable); | |
61 | - } | |
62 | - | |
63 | - } | |
64 | - | |
65 | - public void initIp() { | |
66 | - File file = new File(Environment.getExternalStorageDirectory().getPath() + "/sunvote/serverip.txt"); | |
67 | - FileReader fileReader = null; | |
68 | - BufferedReader br = null; | |
69 | - try { | |
70 | - fileReader = new FileReader(file); | |
71 | - br = new BufferedReader(fileReader); | |
72 | - url = br.readLine(); | |
73 | - url = "http://" + url + ":8080"; | |
74 | - } catch (Exception e) { | |
75 | - e.printStackTrace(); | |
76 | - } finally { | |
77 | - if (br != null) { | |
78 | - try { | |
79 | - br.close(); | |
80 | - } catch (IOException e) { | |
81 | - e.printStackTrace(); | |
82 | - } | |
83 | - } | |
84 | - if (fileReader != null) { | |
85 | - try { | |
86 | - fileReader.close(); | |
87 | - } catch (IOException e) { | |
88 | - e.printStackTrace(); | |
89 | - } | |
90 | - } | |
91 | - } | |
92 | - } | |
93 | - | |
94 | - private Runnable runnable = new Runnable() { | |
95 | - @Override | |
96 | - public void run() { | |
97 | - new Thread() { | |
98 | - public void run() { | |
99 | - try { | |
100 | - URL network = new URL(url); | |
101 | - URLConnection connection = network.openConnection(); | |
102 | - connection.setConnectTimeout(10000); | |
103 | - connection.setReadTimeout(15000); | |
104 | - InputStream is = connection.getInputStream(); | |
105 | - if (is != null) { | |
106 | - byte[] bytes = new byte[1024]; | |
107 | - while (is.read(bytes) > 0) ; | |
108 | - } | |
109 | - successCount++; | |
110 | - last = true; | |
111 | - } catch (Exception e) { | |
112 | - e.printStackTrace(); | |
113 | - errorCount++; | |
114 | - if(last) { | |
115 | - current = new Date().toString(); | |
116 | - last = false; | |
117 | - } | |
118 | - } | |
119 | - handler.post(new Runnable() { | |
120 | - @Override | |
121 | - public void run() { | |
122 | - msg.setText("成功次数:" + successCount + ",失败次数:" + errorCount + "," + current); | |
123 | - webView.loadUrl(url); | |
124 | - } | |
125 | - }); | |
126 | - handler.postDelayed(runnable, 2000); | |
127 | - } | |
128 | - }.start(); | |
129 | - | |
130 | - } | |
131 | - }; | |
132 | - | |
133 | - private Runnable error = new Runnable() { | |
134 | - @Override | |
135 | - public void run() { | |
136 | - error(); | |
137 | - } | |
138 | - }; | |
139 | - | |
140 | - private void error() { | |
141 | - errorCount++; | |
142 | - handler.post(new Runnable() { | |
143 | - @Override | |
144 | - public void run() { | |
145 | - msg.setText("成功次数:" + successCount + ",失败次数:" + errorCount); | |
146 | - } | |
147 | - }); | |
148 | - handler.postDelayed(runnable, 2000); | |
149 | - } | |
150 | - | |
151 | - @Override | |
152 | - protected void onDestroy() { | |
153 | - super.onDestroy(); | |
154 | - handler.removeCallbacks(error); | |
155 | - handler.removeCallbacks(runnable); | |
156 | - } | |
157 | -} |
C5/testproject/src/main/res/layout/activity_base.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | - xmlns:tools="http://schemas.android.com/tools" | |
5 | - android:layout_width="match_parent" | |
6 | - android:layout_height="match_parent" | |
7 | - tools:context="com.sunvote.udptest.WebActivity"> | |
8 | - | |
9 | - <android.support.design.widget.AppBarLayout | |
10 | - android:layout_width="match_parent" | |
11 | - android:layout_height="wrap_content" | |
12 | - android:theme="@style/AppTheme.AppBarOverlay"> | |
13 | - | |
14 | - <android.support.v7.widget.Toolbar | |
15 | - android:id="@+id/toolbar" | |
16 | - android:layout_width="match_parent" | |
17 | - android:layout_height="?attr/actionBarSize" | |
18 | - android:background="?attr/colorPrimary" | |
19 | - app:popupTheme="@style/AppTheme.PopupOverlay" /> | |
20 | - | |
21 | - </android.support.design.widget.AppBarLayout> | |
22 | - | |
23 | - <include layout="@layout/content_base" /> | |
24 | - | |
25 | - <android.support.design.widget.FloatingActionButton | |
26 | - android:id="@+id/fab" | |
27 | - android:layout_width="wrap_content" | |
28 | - android:layout_height="wrap_content" | |
29 | - android:layout_gravity="bottom|end" | |
30 | - android:layout_margin="@dimen/fab_margin" | |
31 | - app:srcCompat="@android:drawable/ic_dialog_email" /> | |
32 | - | |
33 | -</android.support.design.widget.CoordinatorLayout> |
C5/testproject/src/main/res/layout/activity_font_size_actity.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | - xmlns:tools="http://schemas.android.com/tools" | |
5 | - android:layout_width="match_parent" | |
6 | - android:layout_height="match_parent" | |
7 | - tools:context="com.sunvote.udptest.FontSizeActity"> | |
8 | - | |
9 | - | |
10 | - | |
11 | - <include layout="@layout/content_font_size_actity" /> | |
12 | - | |
13 | - | |
14 | -</android.support.design.widget.CoordinatorLayout> |
C5/testproject/src/main/res/layout/activity_main.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | - xmlns:tools="http://schemas.android.com/tools" | |
5 | - android:layout_width="match_parent" | |
6 | - android:layout_height="match_parent" | |
7 | - tools:context="com.sunvote.udptest.MainActivity"> | |
8 | - | |
9 | - | |
10 | - <EditText | |
11 | - android:id="@+id/server_ip" | |
12 | - android:layout_width="match_parent" | |
13 | - android:layout_height="wrap_content" | |
14 | - android:hint="请输入server IP" | |
15 | - android:text="192.168.0.170"/> | |
16 | - | |
17 | - <EditText | |
18 | - android:id="@+id/server_port" | |
19 | - android:layout_width="match_parent" | |
20 | - android:layout_height="wrap_content" | |
21 | - android:hint="请输入server 端口" | |
22 | - android:text="40001" | |
23 | - android:inputType="number" | |
24 | - android:layout_below="@+id/server_ip"/> | |
25 | - | |
26 | - <EditText | |
27 | - android:layout_width="match_parent" | |
28 | - android:layout_height="wrap_content" | |
29 | - android:hint="请输入发送内容" | |
30 | - android:id="@+id/content" | |
31 | - android:text="f5 aa aa 1a 00 00 00 00 91 00 12 00 00 5d 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c9 bb" | |
32 | - android:layout_below="@id/server_port"/> | |
33 | - | |
34 | - <Button | |
35 | - android:layout_width="match_parent" | |
36 | - android:layout_height="wrap_content" | |
37 | - android:text="Test" | |
38 | - android:id="@+id/test" | |
39 | - android:layout_below="@id/content"/> | |
40 | - | |
41 | - | |
42 | - <TextView | |
43 | - android:id="@+id/webviewtest" | |
44 | - android:layout_below="@id/test" | |
45 | - android:layout_width="match_parent" | |
46 | - android:layout_height="match_parent" /> | |
47 | - | |
48 | -</RelativeLayout> |
C5/testproject/src/main/res/layout/activity_main2.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - android:layout_width="match_parent" | |
4 | - android:layout_height="match_parent"> | |
5 | - | |
6 | - <ScrollView | |
7 | - android:layout_width="match_parent" | |
8 | - android:layout_height="match_parent"> | |
9 | - | |
10 | - <TextView | |
11 | - android:id="@+id/display" | |
12 | - android:layout_width="match_parent" | |
13 | - android:layout_height="match_parent" /> | |
14 | - | |
15 | - </ScrollView> | |
16 | - | |
17 | - <Button | |
18 | - android:id="@+id/clean" | |
19 | - android:layout_width="100dp" | |
20 | - android:layout_height="50dp" | |
21 | - android:layout_alignParentBottom="true" | |
22 | - android:layout_alignParentRight="true" | |
23 | - android:layout_marginBottom="20dp" | |
24 | - android:layout_marginRight="10dp" | |
25 | - android:text="清除" /> | |
26 | - | |
27 | -</RelativeLayout> |
C5/testproject/src/main/res/layout/activity_modify_mach_code.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | - xmlns:tools="http://schemas.android.com/tools" | |
5 | - android:layout_width="match_parent" | |
6 | - android:layout_height="match_parent" | |
7 | - tools:context="com.sunvote.udptest.ModifyMachCode"> | |
8 | - | |
9 | - <android.support.design.widget.AppBarLayout | |
10 | - android:layout_width="match_parent" | |
11 | - android:layout_height="wrap_content" | |
12 | - android:theme="@style/AppTheme.AppBarOverlay"> | |
13 | - | |
14 | - <android.support.v7.widget.Toolbar | |
15 | - android:id="@+id/toolbar" | |
16 | - android:layout_width="match_parent" | |
17 | - android:layout_height="?attr/actionBarSize" | |
18 | - android:background="?attr/colorPrimary" | |
19 | - app:popupTheme="@style/AppTheme.PopupOverlay" /> | |
20 | - | |
21 | - </android.support.design.widget.AppBarLayout> | |
22 | - | |
23 | - <include layout="@layout/content_modify_mach_code" /> | |
24 | - | |
25 | - <android.support.design.widget.FloatingActionButton | |
26 | - android:id="@+id/fab" | |
27 | - android:layout_width="wrap_content" | |
28 | - android:layout_height="wrap_content" | |
29 | - android:layout_gravity="bottom|end" | |
30 | - android:layout_margin="@dimen/fab_margin" | |
31 | - app:srcCompat="@android:drawable/ic_dialog_email" /> | |
32 | - | |
33 | -</android.support.design.widget.CoordinatorLayout> |
C5/testproject/src/main/res/layout/content_base.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - android:layout_width="match_parent" | |
4 | - android:layout_height="match_parent"> | |
5 | - | |
6 | - <WebView | |
7 | - android:id="@+id/webview" | |
8 | - android:layout_width="match_parent" | |
9 | - android:layout_height="match_parent"> | |
10 | - </WebView> | |
11 | - | |
12 | - | |
13 | - <TextView | |
14 | - android:id="@+id/msg" | |
15 | - android:layout_width="wrap_content" | |
16 | - android:layout_height="wrap_content" | |
17 | - android:layout_centerInParent="true" | |
18 | - android:textSize="30sp" | |
19 | - android:textColor="#FF0000" | |
20 | - android:text="内容"/> | |
21 | - | |
22 | -</RelativeLayout> |
C5/testproject/src/main/res/layout/content_font_size_actity.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | - xmlns:tools="http://schemas.android.com/tools" | |
5 | - android:layout_width="match_parent" | |
6 | - android:layout_height="match_parent" | |
7 | - android:orientation="vertical"> | |
8 | - | |
9 | - <TextView | |
10 | - android:layout_width="match_parent" | |
11 | - android:layout_height="wrap_content" | |
12 | - android:textSize="@dimen/big_text_p1" | |
13 | - android:text="P1 中文 English 50"/> | |
14 | - | |
15 | - <TextView | |
16 | - android:layout_width="match_parent" | |
17 | - android:layout_height="wrap_content" | |
18 | - android:textSize="@dimen/big_text_p2" | |
19 | - android:text="P2 中文 English 30"/> | |
20 | - | |
21 | - <TextView | |
22 | - android:layout_width="match_parent" | |
23 | - android:layout_height="wrap_content" | |
24 | - android:textSize="@dimen/big_text_p3" | |
25 | - android:text="P3 中文 English 22"/> | |
26 | - | |
27 | - <TextView | |
28 | - android:layout_width="match_parent" | |
29 | - android:layout_height="wrap_content" | |
30 | - android:textSize="@dimen/big_text_p4" | |
31 | - android:text="P4 中文 English 18"/> | |
32 | - | |
33 | - <TextView | |
34 | - android:layout_width="match_parent" | |
35 | - android:layout_height="wrap_content" | |
36 | - android:textSize="@dimen/big_text_p5" | |
37 | - android:text="P5 中文 English 14"/> | |
38 | - | |
39 | - <TextView | |
40 | - android:layout_width="match_parent" | |
41 | - android:layout_height="wrap_content" | |
42 | - android:textSize="@dimen/big_text_p6" | |
43 | - android:text="P6 中文 English 10"/> | |
44 | - | |
45 | - <TextView | |
46 | - android:layout_width="match_parent" | |
47 | - android:layout_height="wrap_content" | |
48 | - android:textSize="@dimen/big_text_pp1" | |
49 | - android:layout_marginTop="30dp" | |
50 | - android:text="PP1 中文 English 10"/> | |
51 | - | |
52 | - <TextView | |
53 | - android:layout_width="match_parent" | |
54 | - android:layout_height="wrap_content" | |
55 | - android:textSize="@dimen/big_text_pp2" | |
56 | - android:text="PP2 中文 English 12"/> | |
57 | - | |
58 | - <TextView | |
59 | - android:layout_width="match_parent" | |
60 | - android:layout_height="wrap_content" | |
61 | - android:textSize="@dimen/big_text_pp3" | |
62 | - android:text="PP3 中文 English 14"/> | |
63 | - | |
64 | - <TextView | |
65 | - android:layout_width="match_parent" | |
66 | - android:layout_height="wrap_content" | |
67 | - android:textSize="@dimen/big_text_pp4" | |
68 | - android:text="PP4 中文 English 16"/> | |
69 | - | |
70 | - <TextView | |
71 | - android:layout_width="match_parent" | |
72 | - android:layout_height="wrap_content" | |
73 | - android:textSize="@dimen/big_text_pp5" | |
74 | - android:text="PP5 中文 English 18"/> | |
75 | - | |
76 | - <TextView | |
77 | - android:layout_width="match_parent" | |
78 | - android:layout_height="wrap_content" | |
79 | - android:textSize="@dimen/big_text_pp6" | |
80 | - android:text="PP6 中文 English 20"/> | |
81 | - | |
82 | - <TextView | |
83 | - android:layout_width="match_parent" | |
84 | - android:layout_height="wrap_content" | |
85 | - android:textSize="@dimen/big_text_pp7" | |
86 | - android:text="PP7 中文 English 22"/> | |
87 | - <TextView | |
88 | - android:layout_width="match_parent" | |
89 | - android:layout_height="wrap_content" | |
90 | - android:textSize="@dimen/big_text_pp8" | |
91 | - android:text="PP8 中文 English 24"/> | |
92 | - <TextView | |
93 | - android:layout_width="match_parent" | |
94 | - android:layout_height="wrap_content" | |
95 | - android:textSize="@dimen/big_text_pp9" | |
96 | - android:text="PP9 中文 English 26"/> | |
97 | - <TextView | |
98 | - android:layout_width="match_parent" | |
99 | - android:layout_height="wrap_content" | |
100 | - android:textSize="@dimen/big_text_pp10" | |
101 | - android:text="PP10 中文 English 28"/> | |
102 | - <TextView | |
103 | - android:layout_width="match_parent" | |
104 | - android:layout_height="wrap_content" | |
105 | - android:textSize="@dimen/big_text_pp11" | |
106 | - android:text="PP11 中文 English 30"/> | |
107 | - | |
108 | - <TextView | |
109 | - android:layout_width="match_parent" | |
110 | - android:layout_height="wrap_content" | |
111 | - android:textSize="@dimen/big_text_pp12" | |
112 | - android:text="PP12 中文 English 32"/> | |
113 | - | |
114 | - <TextView | |
115 | - android:layout_width="match_parent" | |
116 | - android:layout_height="wrap_content" | |
117 | - android:textSize="@dimen/big_text_pp13" | |
118 | - android:text="PP13 中文 English 34"/> | |
119 | - | |
120 | - <TextView | |
121 | - android:layout_width="match_parent" | |
122 | - android:layout_height="wrap_content" | |
123 | - android:textSize="@dimen/big_text_pp14" | |
124 | - android:text="PP14 中文 English 36"/> | |
125 | - | |
126 | - <TextView | |
127 | - android:layout_width="match_parent" | |
128 | - android:layout_height="wrap_content" | |
129 | - android:textSize="@dimen/big_text_pp15" | |
130 | - android:text="PP15 中文 English 38"/> | |
131 | - | |
132 | - <TextView | |
133 | - android:layout_width="match_parent" | |
134 | - android:layout_height="wrap_content" | |
135 | - android:textSize="@dimen/big_text_pp16" | |
136 | - android:text="PP16 中文 English 40"/> | |
137 | - | |
138 | - <TextView | |
139 | - android:layout_width="match_parent" | |
140 | - android:layout_height="wrap_content" | |
141 | - android:textSize="@dimen/big_text_pp17" | |
142 | - android:text="PP17 中文 English 45"/> | |
143 | - | |
144 | - <TextView | |
145 | - android:layout_width="match_parent" | |
146 | - android:layout_height="wrap_content" | |
147 | - android:textSize="@dimen/big_text_pp18" | |
148 | - android:text="PP18 中文 English 50"/> | |
149 | - | |
150 | - | |
151 | - | |
152 | -</LinearLayout> |
C5/testproject/src/main/res/layout/content_modify_mach_code.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | - android:layout_width="match_parent" | |
4 | - android:layout_height="match_parent" > | |
5 | - | |
6 | - <EditText | |
7 | - android:id="@+id/content" | |
8 | - android:layout_width="match_parent" | |
9 | - android:layout_height="200dp" | |
10 | - android:maxLength="8" | |
11 | - android:inputType="text"/> | |
12 | - | |
13 | - <Button | |
14 | - android:id="@+id/modify" | |
15 | - android:layout_width="match_parent" | |
16 | - android:layout_height="wrap_content" | |
17 | - android:text="修改" | |
18 | - android:layout_below="@id/content"/> | |
19 | - | |
20 | -</RelativeLayout> |
C5/testproject/src/main/res/mipmap-hdpi/ic_launcher.png deleted
3.34 KB
C5/testproject/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted
4.11 KB
C5/testproject/src/main/res/mipmap-mdpi/ic_launcher.png deleted
2.15 KB
C5/testproject/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted
2.5 KB
C5/testproject/src/main/res/mipmap-xhdpi/ic_launcher.png deleted
4.73 KB
C5/testproject/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted
5.97 KB
C5/testproject/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted
7.54 KB
C5/testproject/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted
9.82 KB
C5/testproject/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted
10.2 KB
C5/testproject/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted
14.4 KB
C5/testproject/src/main/res/values/colors.xml deleted
1 | -<?xml version="1.0" encoding="utf-8"?> | |
2 | -<resources> | |
3 | - | |
4 | - <!-- http://www.cnblogs.com/bluestorm/p/3644669.html --> | |
5 | - <!-- <color name="colorPrimary">#3F51B5</color> | |
6 | - <color name="colorPrimaryDark">#303F9F</color> | |
7 | - <color name="colorAccent">#FF4081</color>--> | |
8 | - | |
9 | - <color name="colorPrimary">#00000000</color> | |
10 | - <color name="colorPrimaryDark">#00000000</color> | |
11 | - <color name="colorAccent">#00000000</color> | |
12 | - | |
13 | - <color name="bluebackground">#009fd3</color> <!-- 蓝色背景 --> | |
14 | - <color name="votebakground">#e0e0e0</color> | |
15 | - <color name="modifytext">#08c308</color> | |
16 | - <color name="offline_bg">#ff0000</color> | |
17 | - | |
18 | - <color name="white">#FFFFFF</color> <!--白色 --> | |
19 | - <color name="ivory">#FFFFF0</color> <!--象牙色 --> | |
20 | - <color name="lightyellow">#FFFFE0</color> <!--亮黄色 --> | |
21 | - <color name="yellow">#FFFF00</color> <!--黄色 --> | |
22 | - <color name="snow">#FFFAFA</color> <!--雪白色 --> | |
23 | - <color name="floralwhite">#FFFAF0</color> <!--花白色 --> | |
24 | - <color name="lemonchiffon">#FFFACD</color> <!--柠檬绸色 --> | |
25 | - <color name="cornsilk">#FFF8DC</color> <!--米绸色 --> | |
26 | - <color name="seashell">#FFF5EE</color> <!--海贝色 --> | |
27 | - <color name="lavenderblush">#FFF0F5</color> <!--淡紫红 --> | |
28 | - <color name="papayawhip">#FFEFD5</color> <!--番木色 --> | |
29 | - <color name="blanchedalmond">#FFEBCD</color> <!--白杏色 --> | |
30 | - <color name="mistyrose">#FFE4E1</color> <!--浅玫瑰色 --> | |
31 | - <color name="bisque">#FFE4C4</color> <!--桔黄色 --> | |
32 | - <color name="moccasin">#FFE4B5</color> <!--鹿皮色 --> | |
33 | - <color name="navajowhite">#FFDEAD</color> <!--纳瓦白 --> | |
34 | - <color name="peachpuff">#FFDAB9</color> <!--桃色 --> | |
35 | - <color name="gold">#FFD700</color> <!--金色 --> | |
36 | - <color name="pink">#FFC0CB</color> <!--粉红色 --> | |
37 | - <color name="lightpink">#FFB6C1</color> <!--亮粉红色 --> | |
38 | - <color name="orange">#FFA500</color> <!--橙色 --> | |
39 | - <color name="lightsalmon">#FFA07A</color> <!--亮肉色 --> | |
40 | - <color name="darkorange">#FF8C00</color> <!--暗桔黄色 --> | |
41 | - <color name="coral">#FF7F50</color> <!--珊瑚色 --> | |
42 | - <color name="hotpink">#FF69B4</color> <!--热粉红色 --> | |
43 | - <color name="tomato">#FF6347</color> <!--西红柿色 --> | |
44 | - <color name="orangered">#FF4500</color> <!--红橙色 --> | |
45 | - <color name="deeppink">#FF1493</color> <!--深粉红色 --> | |
46 | - <color name="fuchsia">#FF00FF</color> <!--紫红色 --> | |
47 | - <color name="magenta">#FF00FF</color> <!--红紫色 --> | |
48 | - <color name="red">#FF0000</color> <!--红色 --> | |
49 | - <color name="oldlace">#FDF5E6</color> <!--老花色 --> | |
50 | - <color name="lightgoldenrodyellow">#FAFAD2</color> <!--亮金黄色 --> | |
51 | - <color name="linen">#FAF0E6</color> <!--亚麻色 --> | |
52 | - <color name="antiquewhite">#FAEBD7</color> <!--古董白 --> | |
53 | - <color name="salmon">#FA8072</color> <!--鲜肉色 --> | |
54 | - <color name="ghostwhite">#F8F8FF</color> <!--幽灵白 --> | |
55 | - <color name="mintcream">#F5FFFA</color> <!--薄荷色 --> | |
56 | - <color name="whitesmoke">#F5F5F5</color> <!--烟白色 --> | |
57 | - <color name="beige">#F5F5DC</color> <!--米色 --> | |
58 | - <color name="wheat">#F5DEB3</color> <!--浅黄色 --> | |
59 | - <color name="sandybrown">#F4A460</color> <!--沙褐色 --> | |
60 | - <color name="azure">#F0FFFF</color> <!--天蓝色 --> | |
61 | - <color name="honeydew">#F0FFF0</color> <!--蜜色 --> | |
62 | - <color name="aliceblue">#F0F8FF</color> <!--艾利斯兰 --> | |
63 | - <color name="khaki">#F0E68C</color> <!--黄褐色 --> | |
64 | - <color name="lightcoral">#F08080</color> <!--亮珊瑚色 --> | |
65 | - <color name="palegoldenrod">#EEE8AA</color> <!--苍麒麟色 --> | |
66 | - <color name="violet">#EE82EE</color> <!--紫罗兰色 --> | |
67 | - <color name="darksalmon">#E9967A</color> <!--暗肉色 --> | |
68 | - <color name="lavender">#E6E6FA</color> <!--淡紫色 --> | |
69 | - <color name="lightcyan">#E0FFFF</color> <!--亮青色 --> | |
70 | - <color name="burlywood">#DEB887</color> <!--实木色 --> | |
71 | - <color name="plum">#DDA0DD</color> <!--洋李色 --> | |
72 | - <color name="gainsboro">#DCDCDC</color> <!--淡灰色 --> | |
73 | - <color name="crimson">#DC143C</color> <!--暗深红色 --> | |
74 | - <color name="palevioletred">#DB7093</color> <!--苍紫罗兰色 --> | |
75 | - <color name="goldenrod">#DAA520</color> <!--金麒麟色 --> | |
76 | - <color name="orchid">#DA70D6</color> <!--淡紫色 --> | |
77 | - <color name="thistle">#D8BFD8</color> <!--蓟色 --> | |
78 | - <color name="lightgray">#D3D3D3</color> <!--亮灰色 --> | |
79 | - <color name="lightgrey">#D3D3D3</color> <!--亮灰色 --> | |
80 | - <color name="tan">#D2B48C</color> <!--茶色 --> | |
81 | - <color name="chocolate">#D2691E</color> <!--巧可力色 --> | |
82 | - <color name="peru">#CD853F</color> <!--秘鲁色 --> | |
83 | - <color name="indianred">#CD5C5C</color> <!--印第安红 --> | |
84 | - <color name="mediumvioletred">#C71585</color> <!--中紫罗兰色 --> | |
85 | - <color name="silver">#C0C0C0</color> <!--银色 --> | |
86 | - <color name="darkkhaki">#BDB76B</color> <!--暗黄褐色--> | |
87 | - <color name="rosybrown">#BC8F8F</color> <!--褐玫瑰红 --> | |
88 | - <color name="mediumorchid">#BA55D3</color> <!--中粉紫色 --> | |
89 | - <color name="darkgoldenrod">#B8860B</color> <!--暗金黄色 --> | |
90 | - <color name="firebrick">#B22222</color> <!--火砖色 --> | |
91 | - <color name="powderblue">#B0E0E6</color> <!--粉蓝色 --> | |
92 | - <color name="lightsteelblue">#B0C4DE</color> <!--亮钢兰色--> | |
93 | - <color name="paleturquoise">#AFEEEE</color> <!--苍宝石绿 --> | |
94 | - <color name="greenyellow">#ADFF2F</color> <!--黄绿色 --> | |
95 | - <color name="lightblue">#ADD8E6</color> <!--亮蓝色 --> | |
96 | - <color name="darkgray">#A9A9A9</color> <!--暗灰色 --> | |
97 | - <color name="darkgrey">#A9A9A9</color> <!--暗灰色 --> | |
98 | - <color name="brown">#A52A2A</color> <!--褐色 --> | |
99 | - <color name="sienna">#A0522D</color> <!--赭色 --> | |
100 | - <color name="darkorchid">#9932CC</color> <!--暗紫色 --> | |
101 | - <color name="palegreen">#98FB98</color> <!--苍绿色 --> | |
102 | - <color name="darkviolet">#9400D3</color> <!--暗紫罗兰色 --> | |
103 | - <color name="mediumpurple">#9370DB</color> <!--中紫色 --> | |
104 | - <color name="lightgreen">#90EE90</color> <!--亮绿色 --> | |
105 | - <color name="darkseagreen">#8FBC8F</color> <!--暗海兰色 --> | |
106 | - <color name="saddlebrown">#8B4513</color> <!--重褐色 --> | |
107 | - <color name="darkmagenta">#8B008B</color> <!--暗洋红 --> | |
108 | - <color name="darkred">#8B0000</color> <!--暗红色 --> | |
109 | - <color name="blueviolet">#8A2BE2</color> <!--紫罗兰蓝色 --> | |
110 | - <color name="lightskyblue">#87CEFA</color> <!--亮天蓝色 --> | |
111 | - <color name="skyblue">#87CEEB</color> <!--天蓝色 --> | |
112 | - <color name="gray">#808080</color> <!--灰色 --> | |
113 | - <color name="grey">#808080</color> <!--灰色 --> | |
114 | - <color name="olive">#808000</color> <!--橄榄色 --> | |
115 | - <color name="purple">#800080</color> <!--紫色 --> | |
116 | - <color name="maroon">#800000</color> <!--粟色 --> | |
117 | - <color name="aquamarine">#7FFFD4</color> <!--碧绿色 --> | |
118 | - <color name="chartreuse">#7FFF00</color> <!--黄绿色 --> | |
119 | - <color name="lawngreen">#7CFC00</color> <!--草绿色 --> | |
120 | - <color name="mediumslateblue">#7B68EE</color> <!--中暗蓝色 --> | |
121 | - <color name="lightslategray">#778899</color> <!--亮蓝灰 --> | |
122 | - <color name="lightslategrey">#778899</color> <!--亮蓝灰 --> | |
123 | - <color name="slategray">#708090</color> <!--灰石色 --> | |
124 | - <color name="slategrey">#708090</color> <!--灰石色 --> | |
125 | - <color name="olivedrab">#6B8E23</color> <!--深绿褐色 --> | |
126 | - <color name="slateblue">#6A5ACD</color> <!--石蓝色 --> | |
127 | - <color name="dimgray">#696969</color> <!--暗灰色 --> | |
128 | - <color name="dimgrey">#696969</color> <!--暗灰色 --> | |
129 | - <color name="mediumaquamarine">#66CDAA</color> <!--中绿色 --> | |
130 | - <color name="cornflowerblue">#6495ED</color> <!--菊兰色 --> | |
131 | - <color name="cadetblue">#5F9EA0</color> <!--军兰色 --> | |
132 | - <color name="darkolivegreen">#556B2F</color> <!--暗橄榄绿--> | |
133 | - <color name="indigo">#4B0082</color> <!--靛青色 --> | |
134 | - <color name="mediumturquoise">#48D1CC</color> <!--中绿宝石 --> | |
135 | - <color name="darkslateblue">#483D8B</color> <!--暗灰蓝色 --> | |
136 | - <color name="steelblue">#4682B4</color> <!--钢兰色 --> | |
137 | - <color name="royalblue">#4169E1</color> <!--皇家蓝 --> | |
138 | - <color name="turquoise">#40E0D0</color> <!--青绿色 --> | |
139 | - <color name="mediumseagreen">#3CB371</color> <!--中海蓝 --> | |
140 | - <color name="limegreen">#32CD32</color> <!--橙绿色 --> | |
141 | - <color name="darkslategray">#2F4F4F</color> <!--暗瓦灰色 --> | |
142 | - <color name="darkslategrey">#2F4F4F</color> <!--暗瓦灰色 --> | |
143 | - <color name="seagreen">#2E8B57</color> <!--海绿色 --> | |
144 | - <color name="forestgreen">#228B22</color> <!--森林绿 --> | |
145 | - <color name="lightseagreen">#20B2AA</color> <!--亮海蓝色 --> | |
146 | - <color name="dodgerblue">#1E90FF</color> <!--闪兰色 --> | |
147 | - <color name="midnightblue">#191970</color> <!--中灰兰色 --> | |
148 | - <color name="aqua">#00FFFF</color> <!--浅绿色 --> | |
149 | - <color name="cyan">#00FFFF</color> <!--青色 --> | |
150 | - <color name="springgreen">#00FF7F</color> <!--春绿色 --> | |
151 | - <color name="lime">#00FF00</color> <!--酸橙色 --> | |
152 | - <color name="mediumspringgreen">#00FA9A</color> <!--中春绿色 --> | |
153 | - <color name="darkturquoise">#00CED1</color> <!--暗宝石绿 --> | |
154 | - <color name="deepskyblue">#00BFFF</color> <!--深天蓝色 --> | |
155 | - <color name="darkcyan">#008B8B</color> <!--暗青色 --> | |
156 | - <color name="teal">#008080</color> <!--水鸭色 --> | |
157 | - <color name="green">#008000</color> <!--绿色 --> | |
158 | - <color name="darkgreen">#006400</color> <!--暗绿色 --> | |
159 | - <color name="blue">#0000FF</color> <!--蓝色 --> | |
160 | - <color name="mediumblue">#0000CD</color> <!--中兰色 --> | |
161 | - <color name="darkblue">#00008B</color> <!--暗蓝色 --> | |
162 | - <color name="navy">#000080</color> <!--海军色 --> | |
163 | - <color name="black">#000000</color> <!--黑色 --> | |
164 | - | |
165 | -</resources> | |
166 | 0 | \ No newline at end of file |
C5/testproject/src/main/res/values/dimens.xml deleted
1 | -<resources> | |
2 | - <dimen name="fab_margin">16dp</dimen> | |
3 | - <!--文字大小标记设置--> | |
4 | - <dimen name="big_text_p1">50sp</dimen> | |
5 | - <dimen name="big_text_p2">30sp</dimen> | |
6 | - <dimen name="big_text_p3">22sp</dimen> | |
7 | - <dimen name="big_text_p4">18sp</dimen> | |
8 | - <dimen name="big_text_p5">14sp</dimen> | |
9 | - <dimen name="big_text_p6">10sp</dimen> | |
10 | - | |
11 | - | |
12 | - <dimen name="big_text_pp1">10sp</dimen> | |
13 | - <dimen name="big_text_pp2">12sp</dimen> | |
14 | - <dimen name="big_text_pp3">14sp</dimen> | |
15 | - <dimen name="big_text_pp4">16sp</dimen> | |
16 | - <dimen name="big_text_pp5">18sp</dimen> | |
17 | - <dimen name="big_text_pp6">20sp</dimen> | |
18 | - <dimen name="big_text_pp7">22sp</dimen> | |
19 | - <dimen name="big_text_pp8">24sp</dimen> | |
20 | - <dimen name="big_text_pp9">26sp</dimen> | |
21 | - <dimen name="big_text_pp10">28sp</dimen> | |
22 | - <dimen name="big_text_pp11">30sp</dimen> | |
23 | - <dimen name="big_text_pp12">32sp</dimen> | |
24 | - <dimen name="big_text_pp13">34sp</dimen> | |
25 | - <dimen name="big_text_pp14">36sp</dimen> | |
26 | - <dimen name="big_text_pp15">38sp</dimen> | |
27 | - <dimen name="big_text_pp16">40sp</dimen> | |
28 | - <dimen name="big_text_pp17">45sp</dimen> | |
29 | - <dimen name="big_text_pp18">50sp</dimen> | |
30 | -</resources> |
C5/testproject/src/main/res/values/strings.xml deleted
1 | -<resources> | |
2 | - <string name="app_name">测试工具</string> | |
3 | - <string name="title_activity_font_size_actity">FontSizeActity</string> | |
4 | - <string name="title_activity_base">BaseActivity</string> | |
5 | - <string name="title_activity_modify_mach_code">ModifyMachCode</string> | |
6 | - <string name="title_activity_unlock">解密</string> | |
7 | -</resources> |
C5/testproject/src/main/res/values/styles.xml deleted
1 | -<resources> | |
2 | - | |
3 | - <!-- Base application theme. --> | |
4 | - <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> | |
5 | - <!-- Customize your theme here. --> | |
6 | - <item name="colorPrimary">@color/colorPrimary</item> | |
7 | - <item name="colorPrimaryDark">@color/colorPrimaryDark</item> | |
8 | - <item name="colorAccent">@color/colorAccent</item> | |
9 | - </style> | |
10 | - | |
11 | - <style name="AppTheme.NoActionBar"> | |
12 | - <item name="windowActionBar">false</item> | |
13 | - <item name="windowNoTitle">true</item> | |
14 | - </style> | |
15 | - | |
16 | - <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> | |
17 | - | |
18 | - <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> | |
19 | - | |
20 | -</resources> |
C5/testproject/src/test/java/com/sunvote/udptest/ExampleUnitTest.java deleted
1 | -package com.sunvote.udptest; | |
2 | - | |
3 | -import org.junit.Test; | |
4 | - | |
5 | -import static org.junit.Assert.*; | |
6 | - | |
7 | -/** | |
8 | - * Example local unit test, which will execute on the development machine (host). | |
9 | - * | |
10 | - * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> | |
11 | - */ | |
12 | -public class ExampleUnitTest { | |
13 | - @Test | |
14 | - public void addition_isCorrect() throws Exception { | |
15 | - assertEquals(4, 2 + 2); | |
16 | - } | |
17 | -} | |
18 | 0 | \ No newline at end of file |