Articles of java

为图像编辑器快速,稳健地保存/加载文档状态

我正在寻找一些关于我存储Android和iPhone手机位图编辑器状态的方法的批评。 即使是“对我来说也不错!” 反应会很棒! 在应用程序中,当前用户文档包含几个可以绘制的位图图层(每个可能是1024 x 768像素)。 该应用程序的基本要求是: 我需要能够保存和恢复文档状态。 当用户退出应用程序或拨打电话时,我需要能够快速保存文档状态(大约2秒钟内)。 如果应用程序崩溃,我需要能够恢复文档状态(如果用户失去可能30秒的工作,则可以)。 对于1,我找不到任何支持图层的打开文件格式。 我将使用以下文件结构来存储我的文档: document_folder/ layer1.png layer2.png … metadata.xml 这些图层仅存储为.png文件,.xml文件包含数据,例如当前可见的图层。 文档文件夹可以由应用程序按原样打开,也可以将文件夹存储在.zip文件中。 对于其他应用程序来说,这似乎是一个很好的简单格式。 除了.png文件,我还允许以自定义.raw文件格式保存图层,其中包含来自位图的未处理原始像素数据。 我可以在手机上快速保存这些(<0.5s),而.png文件需要一两秒钟。 我的快速保存文档的计划是在启动时创建一个名为/ autosave的文件夹,并在那里保存所有图层的.raw版本。 在一个图层上执行几个编辑命令之后,我会在后台线程中更新该图层的.raw文件。 为了保存时的稳健性,我会将图层保存为例如layer1_tmp.raw,当我确认文件已完全写入时,将layer1.raw替换为此文件。 如果应用程序在使用过程中崩溃,我只需重新打开/ autosave文件夹。 当应用程序关闭或用户接到电话时,我只需更新上次修改的图层即可自动保存。 当用户想要保存时,我只是将所有.raw文件转换为.png文件,然后压缩文件夹。 你怎么看? 有明显的缺陷吗? 有更简单的方法吗? 我不知怎的重新发明轮子? 谢谢。

使用PHPvalidationAndroid Market许可响应的服务器端

我正在构建一个服务器来测试我所有的Android应用内购买市场。 但我认为我没有正确地从应用程序发送信息。 我的服务器是用PHP构建的。 我的应用访问url: …&response={…json…}&signature={…signature…} 签名先前使用URLEncoder.encode编码(签名,“UTF-8”) 我的服务器: $response = $_GET[“response”]; $signature = htmlspecialchars(urldecode($_GET[“signature”])); 然后我执行validation过程。 我认为问题来自于我将参数从应用程序传递到服务器的方式,因为如果我手动复制响应和签名并测试它们,validation函数会说它们是有效的。 url: …&响应= { “随机数”: – 871647007848398655 “订单”:[{ “订单ID”: “768142460571407”, “的packageName”: “net.xxx.aaa”, “的productId”:“net.xxx.mmf。空战英豪 “ ”purchaseTime“:1330090436000 ”purchaseState“:0 ”developerPayload“: ”空战英豪“},{ ”订单ID“: ”203523162686707“, ”的packageName“: ”net.xxx.aaa“, ”的productId“:” net.xxx.mmf.16blocks“,”purchaseTime“:1330511533000,”purchaseState“:0,”developerPayload“:”16 Blocks“},{”orderId“:”328483664834399“,”packageName“:”net.xxx.aaa ”, “的productId”: “net.xxx.mmf.aceventura3”, “purchaseTime”:1331037005000 “purchaseState”:0 “developerPayload”: “艾丝3”}]}&签名= EyT9IgZeq2OLRqCtabTIc5wOKARtdHUfCQAdkEqkGyi%2Bd1qQgcfxPnvIa9VMDQqwh8rxxGPOYQKuhaEuZUJzbSain8%2FN7p41euzb1n1%2FgZkgqXlQTDn076U2AXcp1ymBFZamrwETo0gkZi4q6PZV47oR7Rk28vPU5vjs% 2Bl0TN0DdlzclHuH40CkZqD1ErSMMwWGTGR6bGnJlmmhgHC2KV7Ab63i0hdgkqk5MOtkOxhjS%2B4LG1YxmJIsxhJnOcmNI7n2VKUdtn%2B0CWxO5M8m0BcfpZ9Se3sR6ZtVli2rS1KSKQPL1Td9GWPhmG4nvzZFtKCqf9Le6Meudv6iFTSw5Hg%3D%3D Vardump 响应 string'{“nonce”: – 871647007848398655,“orders”:[{“orderId”:“768142460571407”,“packageName”:“net.xxx.aaa”,“productId”:“net.xxx.mmf.flyboys”, “purchaseTime”:1330090436000 “purchaseState”:0 […]

Android MuPDF错误

我将MUPDF添加到Android应用程序: (1) http://mupdf.blogspot.com/ (2) http://pastebin.com/YzHUhzE7 当我尝试做的时候: Intent intent = new Intent(getBaseContext(), ChoosePDFActivity.class); startActivity(intent); 我明白了: 07-19 05:22:37.255: W/dalvikvm(16084): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/artifex/mupdfdemo/MuPDFCore; 07-19 05:22:37.255: D/AndroidRuntime(16084): Shutting down VM 07-19 05:22:37.255: W/dalvikvm(16084): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 07-19 05:22:37.275: E/AndroidRuntime(16084): FATAL EXCEPTION: main 07-19 05:22:37.275: E/AndroidRuntime(16084): java.lang.ExceptionInInitializerError 07-19 05:22:37.275: E/AndroidRuntime(16084): at com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:212) 07-19 […]

Android EPSON热量打印来自Web视图的数据点击?如果找不到打印机?

这是我的代码 在我的活动中,我使用Epson SDK将数据表格打印到web活动中。 所以在Web-veiw Onclick它将启动打印机活动,它将打印 我想要做的是……从Web视图点击它将打开打印机活动,以便打印和退出… 所以在这里我创建了一个Web视图……在JS的帮助下,它打开我的活动表单Web-view(onclick)直到现在它很好…但我试图添加打印并退出.. onclick但它不是工作…因为我需要选择语言和打印机模型…. 但是,在shared_DiscoveryActivity中,我正在添加打印机并将其保存在共享的首选项中…所以它不会再问……它的工作原理 所以我的问题就是这样 1)打印机要求型号和语言也可以任何人建议我如何手动给他们而不是选择这里是旧代码 mPrinter = new Printer(((SpnModelsItem) mSpnSeries.getSelectedItem()).getModelConstant(), ((SpnModelsItem) mSpnLang.getSelectedItem()).getModelConstant(), mContext); 为此我在System.out.print获得了这些值 System.out:—– spnSeries —–android.widget.Spinner{24440249 VFED..C. …….. 0,444-466,516 #7f0e007b app:id/spnModel} System.out: —– lang —–android.widget.Spinner{1a6c617c VFED..C. …….. 0,604-366,676 #7f0e007d app:id/spnLang} System.out: —– printer —–com.epson.epos2.printer.Printer@b8250d6 2)这是主要问题我在这里定义打印机共享Pinter所以在我的代码中它将检查该地址上的打印机 但在这里如果找不到打印机我该怎么办… 因为在webview打印机将从后端开始..但应用程序仍然在webview所以它崩溃…请建议我这样 更新1 这里我添加了一个新文件Test_P 这将在后台打印而不显示任何信息给用户OnClick它将开始在这里打印我的问题是,如果打印机处于脱机状态或用户不在同一网络应用程序崩溃而不是我试图给出一个消息打印是不可用的/ Conffiged请再试一次……但文字或警报未显示。 我遇到此错误如果打印机处于脱机状态或未find FATAL EXCEPTION: main Process: com.epson.epos2_printer, PID: […]

在桌面应用程序中存储哈希,盐,键的位置

我试图找出应该在桌面应用程序中存储应用程序机密和密钥的位置或方式。 例如,Facebook应用程序密钥或Dropbox密钥和秘密。 所以我读过我应该哈希,加盐,加密等这些值。 这是为了防止有人对我的代码进行逆向工程并查看密钥。 这一切都很好,但是通过所有这些方法,我只是在某处存储salt或hash值,而不是密钥本身。 当然,如果黑客可以获得salt / hash和可能的源代码,他们将能够解密加密密钥并获得我的密码/密钥/秘密吗? 我读过的一个选项似乎最安全的是根本不将此值存储在桌面应用程序中,而是调用Web服务来获取密钥(可能是加密的)。 但我的问题是,即使在这种情况下,一个体面的黑客肯定会只是做一个内存转储或什么来看看从Web服务返回的值是什么,然后我们回到方块1。 下一个最好的选择似乎是默默无闻。 我完全错过了什么吗? 另外一点,facebook / twitter / dropbox / etc密钥/秘密对黑客有什么用处呢? 当然,他们仍然需要用户的凭据或访问令牌才能使用它吗? 任何建议或意见将不胜感激。

从PHP发送响应到Android / Java移动应用程序?

我目前在Android应用程序中有一段代码,它接收设备IMEI并将IMEI作为参数发送到Internet上托管的PHP脚本。 然后,PHP脚本获取IMEI参数并检查文件以查看文件中是否存在IMEI,如果存在,我希望能够让我的Android应用程序知道IMEI存在。 所以基本上我只是希望能够将True返回给我的应用程序。 这可能使用PHP吗? 这是我到目前为止的代码: 安卓/ Java的 //Test HTTP Get for PHP public void executeHttpGet() throws Exception { BufferedReader in = null; try { HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(); request.setURI(new URI(“http://testsite.com/” + “imei_script.php?imei=” + telManager.getDeviceId() )); HttpResponse response = client.execute(request); in = new BufferedReader (new InputStreamReader(response.getEntity().getContent())); StringBuffer sb = new […]

为什么函数不能从android中的php获取数据?

我希望在发布数据后得到响应,但它失败了。 我想创建一个登录系统,我已成功将数据提交到php文件,一切正常,我想从同一个函数得到响应,但我不知道问题出在哪里。 这是Java函数: public class PostDataGetRes extends AsyncTask { protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String… strings) { try { postRData(); } catch (NullPointerException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String lenghtOfFile) { // do stuff after posting data } } public […]

如何从webView.evaluateJavascript回调中返回值?

所以我有一个名为JavascriptBridge的类,用于在Java和Javascript之间进行通信。 要将命令发送到javascript,我只需使用: public void sendDataToJs(String command) { webView.loadUrl(“javascript:(function() { ” + command + “})()”); } 我的问题是我还需要一个从Javascript返回响应的函数。 我尝试使用webView.evaluateJavascript ,但它跳过回调,因为evaluateJavascript在另一个线程上完成。 public String getDataFromJs(String command, WebView webView) { String data = null; webView.evaluateJavascript(“(function() { return ” + command + “; })();”, new ValueCallback() { @Override public void onReceiveValue(String s) { Log.d(“LogName”, s); // Print “test” // data = […]

Android和C之间的加密#

我使用以下C#源代码使用AES(ECB 256)加密纯文本: public static string Encode(string PlainText) { byte[] Key = ASCIIEncoding.UTF8.GetBytes(“12345678901234567890123456789012”); string encrypted = null; RijndaelManaged rj = new RijndaelManaged(); rj.BlockSize = 256; rj.KeySize = 256; rj.Key = Key; rj.GenerateIV(); byte[] IV = rj.IV; rj.Mode = CipherMode.ECB; rj.Padding = PaddingMode.Zeros; try { using (MemoryStream ms = new MemoryStream()) { using (CryptoStream cs = new […]

适用于Android手机的Java编译器

我做了一些谷歌搜索,但没有find关于这个主题的太多信息所以我在这里问, 有没有人知道基于手机的java或c / c ++编译器,所以开发人员可以有效地使用他的手机做一些初步的开发工作(或者只是在管上无聊的时候玩:))