如何用另一个字符串替换字符串中每个字符串模式的出现?
var text = "azertyazerty";
_.replace(text,"az","qu")
Run Code Online (Sandbox Code Playgroud)
返回 quertyazerty
我为Splash Screen活动开发了一个自定义动画:
=>这是一个动画,显示正在发生的事情:
当然我的真实应用:
我的设计师为我提供了60个png文件.
=>举例说明:
我的目标是:
为了运行它,我有一个SpashScreenActivity的多层布局:
以下是SpashScreen布局的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible"
android:orientation="vertical">
<FrameLayout
android:id="@+id/fl_logo_top_marge_hidden"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="invisible"
android:background="@color/colorPrimary" />
<include
android:visibility="invisible"
android:id="@+id/l_logo_activate_hidden"
layout="@layout/part_logo_activate"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:visibility="invisible"
android:id="@+id/fl_logo_bottom_marge_hidden"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/colorPrimary" />
<fr.millezimsolutions.app.splashanimation.SquareAspectWidthBasedImageView
android:visibility="invisible"
android:id="@+id/iv_home_hidden"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/p_log_android" />
<FrameLayout
android:visibility="invisible"
android:id="@+id/fl_bar_hidden"
android:layout_width="match_parent"
android:layout_height="@dimen/start_degustation_bar_height"
android:background="@color/colorAccent"
android:gravity="bottom" />
</LinearLayout>
<LinearLayout
android:id="@+id/fl_middle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:background="@color/colorPrimary"
android:gravity="bottom"
android:orientation="vertical">
<fr.millezimsolutions.app.splashanimation.FitXCropTopImageView
android:id="@+id/iv_slogan" …Run Code Online (Sandbox Code Playgroud) optimization animation android android-animation android-canvas
使用Firebase时,建议使用push()命令管理数据列表.这非常好,它为列表中推送的数据提供了唯一且有序的ID.
但是,当Firebase脱机(goOffline或NetworkOffline)时,如果应用尝试在列表中推送数据,则不会触发完成侦听器,直到应用程序重新联机:因此在该行重新打开之前没有唯一ID .
1 /这是预期/正常行为吗?
2 /我没有在文档中看到(据我记得),push命令在脱机状态下的工作方式不同(或仅在onlinemode中).我在某处错过了一条线路吗?
3 /我的用例处理拥有关系的数据.这意味着我想在列表中创建一个对象(一种主类),然后重用这个主对象id(由完成侦听器提供)来构建主对象和所有其他相关对象之间的关系.我该如何处理这个离线状态?
代码示例:
findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Firebase(getString(R.string.firebase_url)).child("stack").push().setValue(counter++, new Firebase.CompletionListener() {
@Override
public void onComplete(FirebaseError firebaseError, Firebase firebase) {
((TextView) findViewById(R.id.textView3)).setText(String.valueOf(counter) + " - " + firebase.toString());
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
编辑
以下是添加数据的4种方法:
用Listener推送
findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Firebase(getString(R.string.firebase_url)).child("stack").push().setValue(counter++, new Firebase.CompletionListener() {
@Override
public void onComplete(FirebaseError firebaseError, Firebase firebase) {
((TextView) findViewById(R.id.textView3)).setText(String.valueOf(counter) + " - " + firebase.toString());
}
});
} …Run Code Online (Sandbox Code Playgroud) 我有一个具有Facebook和电子邮件登录功能的应用程序,因为我升级了Firebase控制台(仅限,sdk尚未更新).
Firebase 3.0之前的应用程序发布之前,但在控制台升级后,它不再能够使用Facebook签名/登录.
我做了什么:
1 - 升级Firebase控制台
由于Firebase和Facebook控制台更新,我还必须将Oauth回调放到Facebook应用程序中
2 -粘贴的火力地堡的Facebook的OAuth回调至Facebook的控制台(这是无效之前)` https://xxx.firebaseapp.com/__/auth/handler ``
例外情况:
firebase Auth侦听器触发Firebase错误:
提供的身份验证凭据无效.和Facebook:{ "providerErrorInfo":{ "代码":400, "消息": "从Facebook不成功debug_token响应:{\" 错误\ ":{\" 消息\ ":\"(#100)必须提供一个应用程序访问令牌或用户访问令牌是app \",\"类型\"的所有者或开发者:\"OAuthException \",\"code \":100,\"fbtrace_id \":\"DG4lLRJHFBS\"}}"}}
FirebaseError代码:
在FirebaseAndroidSdk的反编译代码中,错误对象是:
0 = {java.util.LinkedHashMap$LinkedEntry@22680}"code" - >"INVALID_CREDENTIALS"
1 = {java.util.LinkedHashMap$LinkedEntry@22681}"message" - >"提供的身份验证凭据无效."
2 = {java.util.LinkedHashMap$LinkedEntry@22682}"details" - >"{"providerErrorInfo":{"code":400,"message":"来自Facebook的不成功的debug_token响应:{\"error \":{ \"message \":\"(#100)您必须提供应用访问令牌或用户访问令牌,该令牌是应用的所有者或开发者,"\"键入\":\"OAuthException \",\"代码\ ":100,\" fbtrace_id\":\" BtB3JF2qmku\"}}"}}"
使用反编译代码:
private void makeAuthenticationRequest(String urlPath, Map<String, String> params, AuthResultHandler handler) {
final AuthenticationManager.AuthAttempt attempt = this.newAuthAttempt(handler);
this.makeRequest(urlPath, HttpRequestType.GET, params, Collections.emptyMap(), new RequestHandler() {
public void onResult(Map<String, Object> result) …Run Code Online (Sandbox Code Playgroud) android facebook-graph-api facebook-authentication firebase firebase-authentication
感谢FlashLight https://github.com/firebase/flashlight的教程,这对使用Firebase进行全文搜索很容易.
但是,如果您保留免费的ES实例,则它在并发访问方面受到限制,并且当您启动节点应用程序时,您会在日志中看到以下消息:
无法索引firebase/xxx/-KHLhdwGplb3lHWjm8RS:错误:超出了并发请求限制.请考虑批量处理您的请求,或联系support@bonsai.io寻求帮助.
怎么解决这个?
当您在Android应用中处理Firebase数据(读取,写入...)时,您需要获取firebase引用,然后才能处理数据.
由于Firebase引用是一个JSON树,如果您指向树根,则可以始终访问子项,与深度无关.
问题:从内存和延迟角度来看,在代码中处理此引用的最佳方法是什么?
1 /创建一个静态Firebase引用应用程序中的根.
MyApplication.getFirebaseRootRef().chid(C1).chid(C11).setValue(...);
Run Code Online (Sandbox Code Playgroud)
2 /为孩子C11创建一个新的firebase ref
Firebase ref = new Firebase("https://your.firebaseio.com/C1/C11");
ref..setValue(...);
Run Code Online (Sandbox Code Playgroud)
3 /混合动力车
Firebase ref = new Firebase("https://your.firebaseio.com");
ref.child(C1).child(C11).setValue(...);
Run Code Online (Sandbox Code Playgroud)
4 /混合2
Firebase ref = new Firebase("https://your.firebaseio.com").child(C1).child(C11);
ref.setValue(...);
Run Code Online (Sandbox Code Playgroud)
性能有什么不同吗?
也许你可能有一些关于可读性和维护的建议?
我有一个引用~100K方法的应用程序,最小Sdk = 16
这是2个组装选项:
现在我有一些常见的用例:
你有人对组装策略有一些建议吗?
3/Prod
2 /测试
1 /调试
这是Gradle文件:
productFlavors {
dev {
minSdkVersion 21
multiDexEnabled ???
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
prod {
// The actual minSdkVersion for the application.
minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
multiDexEnabled false
}
}
defaultConfig {
applicationId "xxxx"
targetSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION
minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
versionCode ANDROID_BUILD_VERSION_CODE
versionName ANDROID_BUILD_APP_VERSION_NAME
}
buildTypes {
release {
debuggable false
ext.enableCrashlytics = true
renderscriptOptimLevel …Run Code Online (Sandbox Code Playgroud) android proguard gradle android-productflavors android-multidex
这是以下数据结构:
{
"list" : {
"-K4YlfoWHZqPyWONv68Y" : {
".priority" : -1.449077948445E12,
"date" : 1449077948445,
"id" : "0",
"name" : "Name_0"
},
"-K4YlfoWHZqPyWONv68Z" : {
".priority" : -1.449077948445E12,
"date" : 1449077948445,
"id" : "1",
"name" : "Name_1"
},
"-K4YlfoWHZqPyWONv68_" : {
".priority" : -1.449077948445E12,
"date" : 1449077948445,
"id" : "0",
"name" : "Name_2"
},
"-K4YlfoWHZqPyWONv68a" : {
".priority" : -1.449077948445E12,
"date" : 1449077948445,
"id" : "1",
"name" : "Name_3"
},
...
}
Run Code Online (Sandbox Code Playgroud)
我只需要获取 id 为“0”的项目;
以下是工作:
final Firebase ref = new …Run Code Online (Sandbox Code Playgroud) 我正在使用带有 aDebugTree和 a 的木材ProductionTree。在正在运行的应用程序中一切都很好。我也成功地在我的 JUnit 测试实现中使用了 Timber,这很好(没有真正的好处,但它确实有效)。
但是,我想获取code under test要显示在 JUnit 日志中的日志。
我尝试构建一个JUnitTree并将木材日志重定向到println(…),并JUnitTree在@Before功能中设置木材,但没有任何效果。来自社区的任何解决方案?
我的请求是否毫无意义,我在网络上没有找到任何有关此需求的信息(也许我使用了错误的关键字)。
android ×7
firebase ×5
java ×2
optimization ×2
animation ×1
concurrency ×1
debugging ×1
gradle ×1
hugo-logging ×1
javascript ×1
junit ×1
kotlin ×1
lodash ×1
logcat ×1
node.js ×1
proguard ×1
string ×1