原因是路由都走本地网卡了,这点可以用tracert命令证明。
于是,用以下三条命令可实现上网:
1 2 3 | route delete 0.0.0.0 route add 0.0.0.0 mask 0.0.0.0 192.168.43.1 route add 192.168.0.0 mask 255.255.0.0 192.168.1.1 |
其中192.168.43.1是WIFI网关,192.168.1.1是本地网关。
人,技术,生活。
原因是路由都走本地网卡了,这点可以用tracert命令证明。
于是,用以下三条命令可实现上网:
1 2 3 | route delete 0.0.0.0 route add 0.0.0.0 mask 0.0.0.0 192.168.43.1 route add 192.168.0.0 mask 255.255.0.0 192.168.1.1 |
其中192.168.43.1是WIFI网关,192.168.1.1是本地网关。
李さんは(部長に)ほめられました。
李さんはほめられました。
陳さんは飼っていた小鳥に逃げられました。
空気読まんかい!空気を!
厳しい暮らしを強いられる
この附近は夜くすりをまいて水洗いをしますので寝ないで下さい
君は一人の人間に過ぎない
君は世界そのものだ
君のこと愛するなんて別に君は誰だっとじゃなくて
ろくに...ない
かねない
しかるべきだ
当たり前だ
いかが(如何) わらった(笑った) まなばん(学ばん)
仅か(僅か)(わずか)
にもかかわらず
あいかわらず
たった
ただ
ただしい
ただで
母亲は子供を起きさせる。
母亲は子供を起こす。
なかなか食わせる店だ
ながら
中国にいながら見れる
新た 新しい
漢の1/3を手に入れた曹操はみずからを魏王となのり、劉備たちのすむ荊州に攻めこんできた。
地元(じもと)の小学生によるお祝いの演奏会が開(ひら)かれた。
举办了由当地的小学生所组成的庆祝演奏会。
すでに友四郎との結婚を決意していた。
この新しい薬は、何年にもわたる研究のすえに作り出されたものだ。
这个新药,是经过多年研究开发后生产出来的药品。
銀行と商事会社の両方の入社試験に合格した兄は、いく日も考えた末に(あげくに)銀行を選んだ。
そろそろ安穏な生活に飽きがきていた。
経営は夫の政之の力に寄るところが大きい。
四女の耀子は独身で舞台女優の卵であり、政之の弟でテレビのディレクターをしている研一に想いを寄せている。
女であることに徹底できない安燈に研一は苛立ちを感じていた。
会社に入ったばっかりで精神的にいろんなプレッシャーがかかりがちな時期。上司に仕事を頼まれても正直できる気がしません。だから、つい「すみません、もういっぱいいっぱいで…」と断った。なんてことしたら、新入社員としてやっぱりマズいのでしょうか?
耀子には横暴としか思えない政之のために、料理を習っているという英子を見て、ある感動を覚えるのだった。
こつぶなこむぎがこいき
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
http://www.360doc.com/content/15/1010/20/11813302_504747200.shtml
如果不能复制文本,就把chrome地址条左边网站设置里的javascript关掉。
比如root用户生成了一个文件夹dir0,再执行
1 | chmod o-rwx dir0 |
那么当非root权限用户usr0访问此目录
1 2 | cd dir0/ bash: cd: dir0/: Permission denied |
让电脑连上安卓手机上,执行
1 2 | adb shell cat /system/build.prop |
可看到
1 2 3 4 5 | ... ro.build.version.sdk=18 ro.build.version.codename=REL ro.build.version.release=4.3 ... |
于是jni中可写如下代码获取系统版本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <sys/system_properties.h> static int test(){ char *key = (char *)"ro.build.version.sdk"; //char *key = (char *)"ro.build.version.release"; char value[1024] = {0}; int ret = __system_property_get(key, value); if (ret <= 0 ) { DBG(("get prop value failed.\n")); return 0; } DBG(("ro.build.id is [%s]\n", value)); return 0; } |
NdkMediaCodec需要安卓5.0以上系统才能运行,在Android.mk里加入
1 | LOCAL_LDLIBS += -lmediandk |
如果是在安卓5.0以下系统中跑,程序会直接崩掉,主函数都不会进,所以要在旧手机中运行,要根据系统版本来判断是不是5.0以上系统,如果是则动态加载libmediandk.so,而不要写死在编译脚本里。
还有,要看手机上有没有解mjpeg的硬解码器,通过以下java代码来查看
1 2 3 4 5 6 7 8 9 10 11 12 | int n = MediaCodecList.getCodecCount(); for (int i = 0; i < n; ++i) { MediaCodecInfo info = MediaCodecList.getCodecInfoAt(i); String[] supportedTypes = info.getSupportedTypes(); boolean mime_support = false; if(info.isEncoder()){ continue; } for (int j = 0; j < supportedTypes.length; ++j) { Log.v("euhat", "codec info:" + info.getName()+" supportedTypes:" + supportedTypes[j]); } } |
以下是jni硬解码代码,因为没找到支持mjpeg硬解的手机,所以还没实际跑起来过。
但实际测试过程中,新的手机上软解1920x1080的mjpeg输出yuv都很流畅了。
在Application.mk文件里改为如下:
1 2 | #APP_PLATFORM := android-14 APP_PLATFORM := android-21 |
再ndk-build就不会出这个错误了,原因也明了,旧的文件夹里没有这个头文件。
电子游戏发展史之百家争鸣的1970年代
https://www.toutiao.com/i6583582769782194702/
https://www.toutiao.com/i6584374365003973128/
https://www.toutiao.com/i6585338411727454733/
NAMCO创始人中村雅哉,这篇文章里又一次提到了乔帮主
https://www.vgtime.com/topic/453341.jhtml
https://www.vgtime.com/topic/559644.jhtml
飞行射击
http://m.appgame.com/archives/376628.html
荒野大镖客此时非彼时
https://www.toutiao.com/a6611296396240749069/
任天堂当年为什么会把塞尔达放给卡普空做?
https://www.toutiao.com/a6607893750234481160/
做出了《双截龙》和“热血”系列,并将自身的影子融入到游戏中
https://www.toutiao.com/a6633393093313823239/
这个由KONAMI辞职员工建立的公司,建立了一个新的游戏王朝
https://www.toutiao.com/i6633764479127519752/
值得关注的号
======
闯关族之家
https://www.toutiao.com/c/user/17238062515/#mid=1606759100795908
1号玩家
https://www.toutiao.com/c/user/77965025598/#mid=1585652639205389
关键词
===
岩谷彻的《吃豆人》
西角友宏的《太空侵略者》
石村繁一的《Galaxian》
远藤雅伸的《铁板阵》
《妖怪道中记》
TENGEN(天元)中岛英行
坂本贺勇的《银河战士》
“游戏音乐圣手”的细野晴臣
田尻智的《口袋妖怪》
上月景正
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <stdarg.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h> #include <errno.h> #include <fcntl.h> #include <string> using namespace std; void ivrLog(const char *format, ...) { va_list argptr; char buf[1024 * 2]; va_start(argptr, format); vsprintf(buf, format, argptr); va_end(argptr); struct timeval tv; int iRet = gettimeofday(&tv, NULL); time_t t = tv.tv_sec; tm* local = localtime(&t); char timeBuf[256]; strftime(timeBuf, 254, "[%Y-%m-%d %H:%M:%S", local); sprintf(timeBuf + strlen(timeBuf), ":%d] ", (int)(tv.tv_usec / 1000)); string dispStr = timeBuf; dispStr += buf; printf("%s", dispStr.c_str()); // please ensure /sdcard/Test dir existed first char *logFileName = (char *)"/sdcard/Test/log.txt"; int fd = open(logFileName, O_CREAT|O_WRONLY|O_APPEND, 0666); if (fd != -1) { write(fd, dispStr.c_str(), dispStr.length()); close(fd); } } |