我要发布我的应用程序,它是一个1.2Mb的apk,包括4种不同格式的大约120个图标(ldpi,mdpi,hdpi,x-hdpi).
如果我添加xx-dpi和xxx-hdpi图标,apk会变大,加载时间会增加.
有许多入门级设备,内存非常loooow,我希望我的应用程序可以在任何地方运行.
我真的需要添加xx-hdpi吗?
是否有真正的设备需要xxx-hdpi?
我正在开发一个Android应用程序,其webview指向另一个团队的动态网站.
当我下载一个文件(主要是动态重定向的 PDF和ZIP)时,我得到的是下载文件夹中的一个文件,其中包含一些HTML代码,其中包含"用户不允许读取文件"的消息,无论我如何实现下载,我尝试:
都具有相同的结果.
使用普通浏览器导航下载工作正常,无论是在台式PC,Android还是iOS设备上.
为什么webview不能访问文件?
可能是一个会话问题?http端口?
我真的需要一些想法...
另一个提示:当从同一个链接下载两个文件时,链接将重定向到同一个文件,但会产生两个不同的文件名...
编辑:而不是将webView指向web-app ,我试图指向一个带链接重定向的常见网页下载另一个文件,好吧,只是它的工作原理.
以下是webview.setDownloadListener - onDownloadStart()参数:
userAgent=Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36
contentDisposition=attachment;
filename=correct_filename.pdf,
url=http://www.xxx.xx/site/downloadfile.wplus?REDIRECTFILE=D-507497120&ID_COUNTOBJ=ce_5_home&TYPEOBJ=CExFILE&LN=2
mimeType=application/octet-stream
Run Code Online (Sandbox Code Playgroud)
这是一些代码
wv.getSettings().setSupportMultipleWindows(true);
wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setDisplayZoomControls(false);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength){
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription("Download file...");
request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimetype));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); …Run Code Online (Sandbox Code Playgroud) 在我安装Google Play Services API 6.4.1以在我的应用中插入横幅后,我很难让它工作.
在我的测试设备上(nexus-S安装JB 4.1.2,语言设置为意大利语)我没有看到任何广告,使用此logcat:
01-27 13:22:55.518: I/Ads(3463): Use AdRequest.Builder.addTestDevice("2CF3523D47F0CFC8A7523B041D9BB325") to get test ads on this device.
01-27 13:22:55.522: I/Ads(3463): Starting ad request.
01-27 13:23:43.998: I/Ads(3463): No fill from ad server.
01-27 13:23:44.409: W/Ads(3463): Failed to load ad: 3
Run Code Online (Sandbox Code Playgroud)
当我在JB 4.2.1 Nexus 7上运行它,语言设置为英语(我们)时,它一直有效,直到我将语言(设置 - >语言和输入 - >语言)更改为意大利语,然后我再也看不到广告了.
看起来没有非英语语言的广告,但对于测试广告和真实广告都会出现这种情况.
尝试使用运行GB 2.3.3和JB 4.3的模拟器,如果语言设置为英语则显示广告,如果我更改语言,则停止显示广告.
这是我在onCreate()中使用的代码
adView = (AdView)(view.findViewById(R.id.adView));
adRequest = new AdRequest.Builder()
.addTestDevice("TEST_DEVICE_ID")
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("2CF3523D47F0CFC8A7523B041D9BB325") // nexus S
.addTestDevice("9C75E9349CF38EF5EB2C6C6100E96A7E") // nexus 7
.build();
adView.loadAd(adRequest);
Run Code Online (Sandbox Code Playgroud)
如何在非英语设备上进行admob工作?
我将以两种版本发布我的应用程序,包括付费和免费(使用AdMob广告).
除了我在AdMob服务的免费版本中使用的google-play-service_lib之外,这两个版本完全相同.
使用proguard后的最终apk大小为:
广告版本的
付费版本
1.946.634字节为1.301.435字节
在免费版中,我只会展示插页式广告.
这是我相对于google-play-service_lib的proguard设置
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的事情来减少文件大小,如删除一些-keep标志或什么?
编辑
使用apktool我发现没有一个类从谷歌Play业务包已经萎缩(包括com.google.android.gms.maps.*,com.google.android.gms.games.*和许多其他人,我认为不需要对广告的管理).
如何强制缩小类或类组?
编辑(再次)
看起来Eclipse并没有保留Proguard输出,至少我无法在任何地方看到它.然后我配置我的项目和库使用Ant构建以查看一些输出,但它几乎没有实质性,这是两种情况:
-whyareyoukeeping class com.google.android.gms.maps.GoogleMap
[proguard] Explaining why classes and class members are being kept...
[proguard] Printing usage …Run Code Online (Sandbox Code Playgroud) 我正在使用RelativeLayout设计一个简单的布局,我想避免嵌套的LinearLayouts或其他嵌套的视图组.
有9个视图,它们都显示如下:

我不知道如何正确对齐搜索栏以避免文本重叠或包裹线.
从右边对齐:rgb图像宽度是固定的,搜索栏宽度(全部相同)取决于标签宽度,我希望它依赖于最大的一个.
如何知道用什么标签android:layout_toRightOf或什么?
上面的图像还显示了我想避免的两种行为: -
对齐是指第一个标签(@ id/text1) -
第二行:android:layout_alignRight缺少使文本重叠更长.
第3行:android:layout_alignRight存在但文本包装较长.
这就是我想要的:

我应该测量TextViews宽度以找到最大的宽度(当然是以编程方式...)?
有没有想过XML解决方案?
这是代码:
<RelativeLayout
android:id="@+id/addon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/semi_transparent_background_controls"
android:visibility="visible" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seek1"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Normal text"/>
<SeekBar
android:id="@+id/seek1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/img1"
android:layout_toRightOf="@id/text1"/>
<ImageView
android:id="@id/img1"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img1"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seek2"
android:layout_alignParentLeft="true"
android:layout_below="@id/img1"
android:text="Longer text overlaps"/>
<SeekBar
android:id="@+id/seek2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/seek1"
android:layout_alignParentLeft="false"
android:layout_alignTop="@+id/img2"
android:layout_below="@id/seek1"
android:layout_toLeftOf="@id/img2"/>
<ImageView
android:id="@id/img2"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img2"
android:layout_alignParentRight="true"
android:layout_below="@id/img1"
/> …Run Code Online (Sandbox Code Playgroud) 编辑
在正则表达式中,匹配的捕获组是否可以替换为相同的匹配更改(将一个字符替换为另一个字符)?
原问题
我正在将产品列表转换为 CSV 文本文件。列表中的每一行都有:number name[ description] price格式如下:
1 PRODUCT description:120
2 PRODUCT NAME TWO second description, maybe:80
3 THIRD PROD:18
Run Code Online (Sandbox Code Playgroud)
生成的格式还必须包含一个slug(而-不是)作为第二个字段:
1 PRODUCT:product-1:description:120
2 PRODUCT NAME TWO:product-name-two-2:second description, maybe:80
3 THIRD PROD:third-prod-3::18
Run Code Online (Sandbox Code Playgroud)
我正在使用的正则表达式是这样的:
(\d+) ([A-Z ]+?)[ ]?([a-z ,]*):([\d]+)
替换字符串是:
`\1 \2:\L$2-\1:\3:\4
Run Code Online (Sandbox Code Playgroud)
这样我的结果是:
1 PRODUCT:product-1:description:120
2 PRODUCT NAME TWO:product name two-2:second description, maybe:80
3 THIRD PROD:third prod-3::18
Run Code Online (Sandbox Code Playgroud)
-我错过的是第二个字段中需要的分隔符连字符,即\2用“ -”而不是“ ”进行分组。
是否可以使用单个正则表达式,或者我应该进行第二遍?
(目前我使用 Sublime 文本编辑器)
谢谢。
我以这种方式链接一些 .js functions.php:
if(get_query_var('pagename')==='checkout') {
wp_enqueue_script('script', 'my.js', array('jquery'), 1.1, true);
}
Run Code Online (Sandbox Code Playgroud)
my.js是我检查一些结账表单输入字段的地方。
现在我看到它my.js也在收到订单的页面中链接(我知道,这是结帐页面的“子页面”!),这会导致一些错误,因为结帐表单不再存在。
如何有条件地在结帐页面中执行某些代码,但不在收到订单的页面中执行某些代码?
谢谢。
I can change the button link using the woocommerce_return_to_shop_redirect hook, but i cannot find a "nice" way to change the button text.
I would avoid modifying the core file wp-content/plugins/woocommerce/templates/cart/cart-empty.php every time woocommerce gets updated.
Any other ideas?
Thanx.
android ×5
woocommerce ×3
admob ×2
wordpress ×2
download ×1
dpi ×1
hook ×1
icons ×1
javascript ×1
permissions ×1
php ×1
proguard ×1
regex ×1
webview ×1