- 博客(22)
- 收藏
- 关注
原创 Stable Diffusion 如何生成有质感的皮肤图像
皮肤的质感太光滑了,不像真实照片。这种情况需要用 Negative Prompt 来控制。
2023-03-28 14:52:53
5874
原创 谈谈熟悉在GUI界面下编译代码的同学怎么快速入门Android Studio
本文面向原来熟悉在GUI界面(例如VisualStudio)下编译代码的同学。Visual Studio确实是一个傻瓜式的开发环境,像Visual C++,在Visual Studio里把C/C++代码写好,点一下“运行”按钮,就可以把程序运行起来了。对比Linux里传统的开发模式,不仅要写C/C++代码,还要写makefile。Android Studio其实也是继承了这种思想,开发Android应用(以下都简称App),不仅要写Java代码,还要写编译Java代码的代码,也就是说,编译过程本身也是执行一
2017-11-01 12:56:29
1835
原创 Android 4.0 对通知栏图标的尺寸有要求
某应用,之前在各版本的 Android 系统上运行良好,最近测试部门在 Android 4.0 兼容性测试中,发现该应用在通知栏显示图标时,图标显示不全。经检查发现,创建通知栏图标时:Notification nf = new Notification(R.drawable.notify_icon, "", System.currentTimeMillis());图片资源 noti
2011-11-24 11:33:32
12907
原创 用 managedQuery() 时需要注意的一个陷阱
Activity 里面提供了一个 managedQuery() 方法,按照 Android SDK 里面的说明,“the activity will manage its lifecycle for you.” 听起来很好,Activity 可以替你管理 Cursor 的生命周期了,就不用记着去 close() 了,代码可以更简洁。但是 Activity 是怎么去管理 Cursor 的生命周期
2011-11-16 14:13:08
9418
原创 Android 原生系统给电信发短信出现乱码或者收不到的原因
网上说的方法是修改/system/framework/framework.odex文件,找9a13040b,改为9a130408。方法是没错,不过原理没说清楚。其实问题是出在 framework/base/telephony/java/com/android/inte
2011-10-18 19:22:57
7982
原创 Android monkey test 脚本的编写
Android 的 monkey test 工具提供了 -f scriptfile 参数,可以指定 test 脚本,然而翻遍了 Android 的网站也没有找到这个脚本的文档,最终只在 monkey 的源码 MonkeySourceScript.java 中找到了一小段注释,里面
2011-10-11 20:15:54
20152
原创 Windows 下面可用的 C/C++ 的正则表达式库
<br />1. 最省事的是 ATL 里面自带的 CAtlRegExp。不过对 POSIX 标准支持很差,而且非常慢。<br />2. boost,名气很大,但是过于臃肿,而且速度也不快。<br />3. 以前微软研究院有个小组搞过一个greta,号称速度是boost的7倍多,不过03年以后就再也没更新了。在 VC8 以上版本编译需要稍作修改。兼容性不错。<br />4. VBScript.RegExp。兼容性和速度都很好,尤其是速度上出人意料地击败了greta,比较复杂的规则比greta快了1
2011-06-02 11:05:00
8832
3
原创 Android 中用 tcpdump 调试网络程序
<br />Android 默认没有 tcpdump,从网上下一个其它人 port 的版本就可以了,这个很容易 google 到,我就不再赘述了。也可以自己从 http://www.tcpdump.org 下载源码编译。NDK r5 之后直接用 toolchain 编译就行。<br /> <br />如果我们用 tcpdump 来调试 http 程序,可以这么写:<br /> <br />tcpdump -p -nnn -vvv -s 0 -w /sdcard/1.pcap port 80 and tcp<
2011-03-25 20:03:00
2926
1
原创 C 语言版本的 string replace 函数
<br />ANSI C 中并没有提供 string replace 的函数,网上有一些自己实现的,不过大多有一个问题:不是全部替换。<br /> <br />例如,This is a test to test string replacing.<br />如果要替换 test 成 example,全部替换的结果应该是:This is a example to example string replacing.<br />网上很多的实现都是只要找到一个结果就返回了。<br /> <br />这里我写了一个全
2011-01-14 10:22:00
14326
原创 NDK r5 Toolchain 简单测试
<br />NDK r5 带的 toolchain 终于可以支持 makefile 的编译系统了。不过为了让它支持 GNU libc++ 还颇费了一番功夫,文档实在太缺乏了。下面是一个简单的试成功了的 case:<br /> <br />首先我们写一个简单的 C++ 程序,这里命名为 test.cpp,里面用到了 iostream, vector, typeid,libc++ 的基本特性都包含在里面了:<br />#include <vector>#include <iostream>#includ
2010-12-28 17:11:00
3376
2
原创 NDK r5 支持 RTTI 了
<br />在 NDK r5 的 sources/cxx-stl/gnu-libstdc++/README 文件里,写着:<br />To use it, define APP_STL to 'gnustl_static' in your Application.mk.See docs/CPLUSPLUS-SUPPORT.html for more details.This implementation fully supports C++ exceptions and RTTI.<br />也
2010-12-28 16:57:00
6426
原创 Android App 如何动态加载类
<br />在 Java 里面,我们可以把一些类放到 .jar 文件里面,然后用 ClassLoader 动态加载。例如:<br />URLClassLoader ucl = URLClassLoader.newInstance(new URL[]{new URL("file:/sdcard/files/test.jar")});Class clazz = ucl.loadClass("com.test.TestClass"); <br />但是在 Android 上面,情况有所不同。<br />
2010-12-24 19:38:00
28720
4
原创 开发 Standalone Android Java 应用程序
<br />一般来说,我们开发的 Android 应用程序都是基于 Activity 的,由 Android 系统来管理程序的生命周期;但是,有的时候,我们也想自己来控制程序的流程。例如,如果只是开发一个类似 /system/bin/pm 那样的 console 应用程序,用 Activity 就不合适了。这里我称这种自行控制流程的程序为 Standalone 的 Android 程序。<br /> <br />开发的方法和开发普通的 Java 应用程序并没有太大区别。例如,我们以 Java 的 Hello
2010-12-23 18:37:00
6238
2
原创 Android Native 应用程序启动 Activity 的方法
<br />调用 /system/bin/am.<br /> <br />用法:<br />usage: am [subcommand] [options]<br /><br /> start an Activity: am start [-D] [-W] <INTENT><br /> -D: enable debugging<br /> -W: wait for launch to complete<br /><br /> start a Servi
2010-12-17 10:21:00
3188
原创 Android HotPatch
如果要 patch 掉系统的一些服务,例如 installd, ps 之类,可以直接把 /system/bin/ 目录下的文件直接重命名,然后把 patch 的新文件用原来的名字保存到这个目录下,重启手机后生效。但是直接写文件是不行的,会遇到 Read-only file system 的错误,所以要 remount,命令行是mount -o remount rw /system/注意在 Android Emulator 下面的话重启之后就还原了,只能在真机上这么做。
2010-12-09 13:42:00
3847
转载 Android APK 是怎么安装的?
<br />http://justanapplication.wordpress.com/2009/08/22/a-standalone-android-runtime-application-installation/<br /> <br />It turns out that an application can be installed, such that it can subsequently be run, simply by placing the package containing
2010-12-08 18:34:00
1661
原创 点评 Firefox 导入 IE Cookie 的代码
<br />Firefox 在安装完成的时候,会问你要不要导入其它浏览器的数据,比如说导入 IE 的 cookie, history 之类。导入的代码在<br />browser/components/migration/src/nsIEProfileMigrator.cpp<br />其中,导入 cookie 的代码是:<br />/* Fetch and translate the current user's cookies. Return true if successful. */ns
2010-12-06 10:19:00
2867
原创 在 Android Emulator 中开发 LKM 程序
在 Android Emulator 里面用 insmod 安装 LKM 时,会报告错误,例如:# insmod hello.koinsmod: init_module 'hello.ko' failed (Function not implemented)这是因为 Android SDK 里面自带的 Emulator 所用的 kernel 关闭了加载 LKM 的功能。要在 Emulator 里面开发和调试 LKM,必须自己重新编译 kernel. 编译方法可以参考 http://linuxclue
2010-12-03 19:53:00
9057
原创 用 Android NDK 开发 Native 应用程序(二)
调试1. 首先把要调试的程序上传到模拟器中。假定我们用 adb push hello /data/hello 将程序传到了模拟器的 /data 目录。注意确认 hello 有可执行权限。2. 在模拟器上运行 gdbserver : hello,启动调试。其中 port 是 gdbserver 在手机上监听的端口号,注意和后面我们用 gdb 连接的端口可能不是同一个。运行结果可能是:# gdbserver :6789 helloProcess hello created; pid = 277Liste
2010-12-02 17:34:00
3784
原创 用 Android NDK 开发 Native 应用程序(一)
编译 Native App1. 安装 Android NDK,不必赘述。假定我们安装到了 /Developer/android-ndk-r4b/.2. 在工作目录下建立一个 jni 目录。如果要使用 NDK 自带的 Android.mk,必须叫做这个名字,否则 make 的时候会找不到文件,错误提示可能类似下面:Android NDK: Could not find application project directory ! Android NDK: Please define the
2010-12-02 17:10:00
21823
原创 Firefox 实现 NPAPI 时的一个 BUG
在 NPAPI 里有一个接口 NPN_PostURL(),可以用来控制浏览器做 HTTP POST,接口是这样的:NPError NPN_PostURL(NPP instance, const char* url,const char* target, uint32 len, const char* buf, NPBool file); 可以看出来,这个接口没有指定 HTTP
2009-03-19 09:44:00
2549
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人