【wiki系统php源码】【moodle 源码分析】【mpu dmp源码】android junit 源码

来源:NameValuePair 源码

1.android junit test launcher和eclipse junit launcher 的区别
2.AndroidAnnotation常用注解使用说明
3.关于android设备的unauthorized

android junit 源码

android junit test launcher和eclipse junit launcher 的区别

       Junit的执行,是从JunitCore这个类开始的,也就是junit的runner,之后调用junitCore的run方法。如果想要在执行Junit的过程中收到相信的提示信息等,可以实现RunListener,源码并且通过JunitCore运行class,如下:If you need to respond to the events during a test run, extend RunListener and override the appropriate methods. If a listener throws an exception while processing a test event, it will be removed for the remainder of the test run.public void main(String... args) { JUnitCore core= new JUnitCore();core.addListener(new RingingListener());core.run(MyTestClass.class);}

AndroidAnnotation常用注解使用说明

       AndroidAnnotations是一个开源框架,通过其提供的源码注解API,可以显著减少冗余代码量,源码使代码更简洁。源码最新版本为4.0.0,源码wiki系统php源码导入第三方库时,源码moodle 源码分析在app目录下的源码build.gradle(局部gradle)文件中添加配置如下:

       gradle

       apply plugin: 'com.android.application'

       apply plugin: 'android-apt'

       def AAVersion = '4.0.0'

       android {

        compileSdkVersion

        buildToolsVersion ".0.2"

        defaultConfig {

        applicationId "com.xxx.demo"

        minSdkVersion

        targetSdkVersion

        versionCode 1

        versionName "1.0"

        }

        buildTypes {

        release {

        minifyEnabled false

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

        }

       }

       dependencies {

        compile fileTree(dir: 'libs', include: ['*.jar'])

        testCompile 'junit:junit:4.'

        compile 'com.android.support:appcompat-v7:.1.1'

        *apt "org.androidannotations:androidannotations:$AAVersion"

        compile "org.androidannotations:androidannotations-api:$AAVersion"

       }

       apt {

        arguments {

        androidManifestFile variant.outputs[0].processResources.manifestFile

        resourcePackageName "com.xxx.demo" // 你的项目包名

        }

       }

       确保在AndroidManifest.xml中确认项目包名。

       在gradle目录下的源码build.gradle文件(全局gradle)中添加配置如下:

       gradle

       buildscript {

        repositories {

        jcenter()

        }

        dependencies {

        // replace with the current version of the Android plugin

        classpath 'com.android.tools.build1.5.0'

        // replace with the current version of the android-apt plugin

        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4+'

        }

       }

       allprojects {

        repositories {

        jcenter()

        }

       }

       task clean(type: Delete) {

        delete rootProject.buildDir

       }

       ### 常用注解

       #### 组件注解

       java

       @EActivity(R.layout.activity_main)

       public class MainActivity extends Activity {

        // ...

       }

       常用的注解包括`@EActivity`、`@EFragment`、源码`@EService`等,源码被注解的源码组件才能使用其他注解功能。

       #### 资源引用注解

       java

       @ViewById(R.id.tv_title) // 可省略括号和id

       TextView tv_title;

       @Extra("mTitle") // 默认名称与参数名一致时可省略括号

       String mTitle;

       @StringRes(R.string.hello) // 直接使用资源id

       String hello;

       简单的源码控件绑定,资源文件中的源码mpu dmp源码id与控件名一致时,无需在注解后加上括号及对应控件的源码id。

       #### 事件绑定注解

       java

       @Click

       void img_back() {

        finish();

        overridePendingTransition(R.anim.zoom_in,源码 R.anim.zoom_out);

       }

       还有`@TextChange`、`@ItemClick`、`@SeekBarProgressChange`等注解。ios战棋源码

       ### 方便的注解

       #### 异步线程与UI线程

       java

       @UiThread

       void doSomething() {

        // UI线程操作

       }

       @Background

       void doSomething() {

        // 异步线程操作

       }

       通过这些注解,UI线程执行的方法只需标注`@UiThread`,异步线程方法标注`@Background`,两者之间的jquery源码pdf交互通过直接调用即可,无需使用Handler发送和接收Message。

       #### 广播接收注解

       java

       @Receiver(actions = "Utils.ACTION_BLE_DISCONNETED")

       public void bleDisconnect() {

        // 处理断开事件

       }

       @Receiver(actions = "Utils.ACTION_UPDATE_WATER_SHOW")

       public void updateWaterShow(@Receiver.Extra("Utils.VALUE_ADDRESS") long water) {

        if (switchIsOpen) {

        edt_water.setText(water + "");

        }

       }

       注册广播接收器变得简单快捷,相比传统方式显著简洁。

       #### SharedPreferences注解

       java

       @SharedPref(value = SharedPref.Scope.UNIQUE)

       public interface MyPrefs {

        @DefaultBoolean(true) boolean isFirstIn();

        @DefaultString("") String ignoreVersion();

        @DefaultInt(0) int shockLevel();

       }

       直接使用`@SharedPref`注解可以简单地使用SharedPreferences的功能。在类中声明并使用即可。

       ### @EBean注解

       java

       @EBean

       public class MyClass {

        @UiThread

        void updateUI() {

        // UI更新操作

        }

       }

       在类名上使用`@EBean`注解,该类只能有一个无参或仅带`context`参数的构造方法。在activity等组件内声明后,无需再new该类,否则会出错。

       ### 总结

       这些是常用的方法及说明,AndroidAnnotations框架还有更多功能。如需深入了解,建议访问官方文档查阅使用说明。

关于android设备的unauthorized

       ä¸‹å­¦æœŸè®¤çœŸæžandroid开发,然后有机房的eclipse+SDK+ADT以及笔电的android studio双开发环境支持,瞬间感觉底气十足

        因为android studio自带的虚拟机相机硬件调用比较烦人,并且没有办法进行android studio下的junit测试,所以又忍不住入手了日版的S5一部,然后愉快开始了双测试环境的切换生涯。

        在eclipse+SDK+ADT的机房xp系统里面,S5打开开发者选项->打开usb调试选项,很顺利的让我手机上点击确定密钥进行连接,然后就可以用adb 命令顺利操作手机的apk安装 卸载啊 查看shell用root命令【但是貌似还是要在手机上再点击确认一下超级权限的,否则就是静默拒绝了权限申请啊。。】

        然后我是买了快半个月的时候,换到家里笔电的android studio来试试测试S5的,主要是想用shell来删掉相机的拍照时候的声音,单手首先就遇到了unauthorized的问题,百度了一下,usb调试没打是很多时候出现这种情况的主要原因,但是我之前按照和机房里面一样的操作,一样点选了usb调试后再点选了公钥怎么就unauthorized了。。百思不得其解啊,无奈就只好断开连接,重新插usb,重新点选usb调试,看到了在这里的点选公钥的悬浮框下面有一行是否是分钟断开。。。难怪了,连上没一会就没有授权,赶紧把这个选项点选了。。。手机就再也没出现设备unauthorized了

文章所属分类:时尚频道,点击进入>>