目前,在处理大量文本行(10000+)时,Android的EditText非常慢.看起来这种减速部分是由于EditText支持跨度,主要是因为EditText正在计算每条线的宽度,这是非常昂贵的.是否有更快的EditText替代品,或者一种优化它以使其可用的方法?
编辑:方法跟踪如下:
android.text.StaticLayout.generate: 99.1% CPU time inclusive, 8.8% exclusive (1 call)
android.text.Layout.getParagraphSpans: 28% inclusive, 1.1% exclusive (4686 calls)
android.text.MeasuredText.setPara: 20.6% inclusive, 1.6% exclusive (2343 calls)
android.text.MeasuredText.addStyleRun: 18.6% inclusive, 1.1& exclusive (2343 calls)
android.text.SpannableStringBuilder.getSpans: 15% inclusive (of parent calls), 56.7% inclusive (of all calls, 47.3% of which are from android.text.Layout.getParagraphSpans, 26% are from android.text.MeasuredText.setPara, 26% are from android.text.StaticLayout.generate)
Run Code Online (Sandbox Code Playgroud) 我有2个模块:阿和乙.
- A是独立模块.它的测试本身运行得很好.
- B是一个依赖模块.其测试需要在某个文件甲的测试文件夹(在一个测试文件乙延伸在一个甲)
这里是什么,我认为是相关部分乙的build.gradle:
android {
...
sourceSets {
test.java.srcDirs += "../A/src/test/java"
}
}
dependencies {
compile project(':A')
testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.4'
testCompile 'org.mockito:mockito-core:1.9.5'
}
Run Code Online (Sandbox Code Playgroud)
虽然这在技术上适用于我需要的东西 - 它有令人讨厌的副作用,每当我运行A的单元测试时,它们也运行B的所有测试.我真的很想,如果不是这样的话.
我正在使用Android Gradle 1.1(以及Android Studio 1.1),我认为这会给我带来一些问题.我已经尝试了所有可以找到的解决方案 - 不幸的是,它们似乎都不适用于Android Gradle 1.1 - 例如:
除去sourceSets从乙的build.gradle和添加(以乙的依赖关系)的线
testCompile project(':A').sourceSets.test.output
Run Code Online (Sandbox Code Playgroud)
产生构建错误 Could not find property 'test' …
我希望扩展Django集团的功能,因此我可以在集团上拥有额外的属性,例如集团主页的网址.像这样的东西:
class Organization(Group):
url = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
但是,当使用此组织并将其添加到用户(通过使用org.user_set.add(user))时,我无法从用户访问url字段.当我这样做时,user.groups.all()它显示用户所在的组(而非组织)与我在组织中设置的名称相同org.那么我该如何向Group添加功能,但是可以通过我的用户信息访问它?
我需要onsubmit表单上的属性的功能- 即当我调用此onsubmit函数时,它必须返回truthy以便表单发布.但是我想通过角度函数调用来执行此操作,其方式如下:
<form id="form-submit-canvas" autocomplete="on" enctype="multipart/form-data" accept-charset="UTF-8" method="POST" onsubmit="{{FormSubmit.validate()}}" action="{{FormSubmit.SUBMIT_URL}}" novalidate>
Run Code Online (Sandbox Code Playgroud)
但是,上面给出了关于使用插值的错误onsubmit.我尝试放入ng-submit并且它不起作用,因为action我设置的属性被覆盖.
当我试图跑
function isRegExp(value) {
return toString.call(value) === '[object RegExp]';
}
Run Code Online (Sandbox Code Playgroud)
在IE <= 11(尝试11和9),我得到了一个TypeError: Invalid calling object.此代码适用于较新版本以及其他浏览器.
首先,我很困惑.此函数与AngularJS函数相同,Angular声称支持IE 9+.当我使用它时,相同的代码行如何导致错误(从而导致我的调用函数中断),当我假设他们已经测试过它时?
其次,我很好奇究竟是什么导致了这个问题.这个值可以是Javascript中的任何东西,它似乎只是打破了我发送的一些东西(当给出一个简单的数组时它似乎没有破坏,但似乎很难对象的数组对象的数组...等.)
android ×2
angularjs ×2
django ×1
forms ×1
gradle ×1
javascript ×1
performance ×1
python ×1
textview ×1