随笔杂记

   :: 首页 :: 新随笔 ::  ::  :: 管理 ::

2016年12月31日 #

Android.mk修改

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS) 
LOCAL_STATIC_JAVA_AAR_LIBRARIES := leakcanary-android-aar leakcanary-watcher-aar leakcanary-analyzer-aar 
LOCAL_STATIC_JAVA_LIBRARIES :=  haha
LOCAL_MODULE_TAGS := optional 
LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages com.squareup.leakcanary    
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_SRC_FILES := \
        $(call all-java-files-under, src)  
LOCAL_PACKAGE_NAME := XXXXX 
include $(BUILD_PACKAGE)

include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := 
        haha:libs/haha-2.0.3.jar \
        leakcanary-android-aar:libs/leakcanary-android-1.5.aar \
        leakcanary-watcher-aar:libs/leakcanary-watcher-1.5.aar \
        leakcanary-analyzer-aar:libs/leakcanary-analyzer-1.5.aar 
include $(BUILD_MULTI_PREBUILT)

include $(call all-makefiles-under,$(LOCAL_PATH))

posted @ 2016-12-31 17:06 天宇恒星 阅读(48) | 评论 (0)编辑 收藏

2016年7月25日 #

1.增加数据源
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
修改/etc/apt/sources.list.d/gitlab-ce.list 加入  deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/debian jessie main
sudo apt-get update

2.开始安装
# 安装依赖包
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
sudo apt-get install curl openssh-server ca-certificates postfix
# 安装 GitLab 社区版
apt-get install gitlab-ce
# 初始化,初始化完自动启动 GitLab
sudo gitlab-ctl reconfigure

3.修改配置
每次修改/etc/gitlab/gitlab.rb,都要运行以下命令,让配置生效
sudo gitlab-ctl reconfigure
posted @ 2016-07-25 14:29 天宇恒星 阅读(78) | 评论 (0)编辑 收藏

2016年6月22日 #

1.安装相关软件
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev gcc-multilib g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc libsdl-dev libesd0-dev libncurses5-dev lib32ncurses5 lib32stdc++6 rapidsvn nautilus-open-terminal libswitch-perl subversion openjdk-7-jdk lib32z1 libusb-dev libpcap-dev lib32bz2-1.0 libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9

2.设置环境变量,修改.bashrc
export ANDROID_SDK_HOME=/home/xxx/android_env/adt-bundle-linux-x86_64/sdk
export ANDROID_HOME=/home/xxx/android_env/adt-bundle-linux-x86_64/sdk
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ANDROID_SDK_HOME/tools:$ANDROID_SDK_HOME/platform-tools:$GRADLE_HOME/bin:$PATH:
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export USE_CCACHE=1
export MAVEN_HOME=/home/xxx/android_env/apache-maven-3.3.9/
export GRADLE_HOME=/home/xxx/android_env/gradle-2.10
export GRADLE_USER_HOME=/home/xxx/android_env/gradle-2.10
export ANT_HOME=/home/xxx/android_env/apache-ant-1.9.7
export PATH=$GRADLE_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin:$PATH
export GOROOT=/root/go
export GOPATH=/root/goworkspace
export PATH="/root/go/bin:/root/goworkspace/bin:"$PATH
posted @ 2016-06-22 14:37 天宇恒星 阅读(89) | 评论 (0)编辑 收藏

2016年6月6日 #

adb mtp设置
1)sudo apt-get install libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9

2)sudo gedit /etc/fuse.conf
#user_allow_other 修改为 user_allow_other

3)sudo gedit /lib/udev/rules.d/69-mtp.rules
ATTR{idVendor}=="0e8d", ATTR{idProduct}=="201d", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
ATTR{idVendor}=="271d", ATTR{idProduct}=="2017", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
ATTR{idVendor}=="271d", ATTR{idProduct}=="2008", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
ATTR{idVendor}=="271d", ATTR{idProduct}=="0c02", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
ATTR{idVendor}=="271d", ATTR{idProduct}=="bf3a", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

4)sudo gedit /etc/udev/rules.d/51-android.rules
ATTR{idVendor}=="0e8d", ATTR{idProduct}=="201d", MODE=”0666"
ATTR{idVendor}=="271d", ATTR{idProduct}=="2017", MODE=”0666"
ATTR{idVendor}=="271d", ATTR{idProduct}=="2008", MODE=”0666"
ATTR{idVendor}=="271d", ATTR{idProduct}=="0c02", MODE=”0666"
ATTR{idVendor}=="271d", ATTR{idProduct}=="bf3a", MODE=”0666"

5)sudo service udev restart

6)sudo reboot


flashtool设置
1)sudo apt-get install libusb-dev
2)sudo ./flash_tool.sh


3)sudo gedit /etc/udev/rules.d/20-mm-blacklist-mtk.rules
ATTRS{idVendor}=="0e8d", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="271d", ENV{ID_MM_DEVICE_IGNORE}="1"


4)service udev restart
posted @ 2016-06-06 10:35 天宇恒星 阅读(320) | 评论 (0)编辑 收藏

2016年5月31日 #

有两种解决方法:
1、设置Action和packageName:
参考代码如下:
Intent mIntent = new Intent();
mIntent.setAction("XXX.XXX.XXX");//你定义的service的action
mIntent.setPackage(getPackageName());//这里你需要设置你应用的包名
context.startService(mIntent);
此方式是google官方推荐使用的解决方法。

2、将隐式启动转换为显示启动:
public static Intent getExplicitIntent(Context context, Intent implicitIntent) {
        PackageManager pm = context.getPackageManager();
        List<ResolveInfo> resolveInfo = pm.queryIntentServices(implicitIntent, 0);
        if (resolveInfo == null || resolveInfo.size() != 1) {
            return null;
        }
        ResolveInfo serviceInfo = resolveInfo.get(0);
        String packageName = serviceInfo.serviceInfo.packageName;
        String className = serviceInfo.serviceInfo.name;
        ComponentName component = new ComponentName(packageName, className);
        Intent explicitIntent = new Intent(implicitIntent);
        explicitIntent.setComponent(component);
        return explicitIntent;
    }
调用方式如下:
Intent mIntent = new Intent();
mIntent.setAction("XXX.XXX.XXX");
Intent eintent = new Intent(getExplicitIntent(mContext,mIntent));
context.startService(eintent);

posted @ 2016-05-31 13:19 天宇恒星 阅读(60) | 评论 (0)编辑 收藏

2016年5月24日 #

服务器端安装
1. 切换到dash
 sudo dpkg-reconfigure dash 选no
2.配置iptables
#iptables -I INPUT -p tcp --dport 22 -j ACCEPT
#iptables -I OUTPUT -p tcp --sport 22 -j ACCEPT
3. 安装
rm -f install_fs.sh
wget  http://fs.d1sm.net/finalspeed/install_fs.sh
chmod +x install_fs.sh
./install_fs.sh 2>&1 | tee install.log
4.保持iptables
将防火墙规则保存到/etc/iptables.up.rules文件中:
iptables-save > /etc/iptables.up.rules
然后修改脚本/etc/network/interfaces,在末尾添加一行,在网络启动时应用防火墙规则:
pre-up iptables-restore < /etc/iptables.up.rules
5.卸载
sh /fs/stop.sh ; rm -rf /fs
6.启动
sh /fs/start.sh; tail -f /fs/server.log
重复运行启动会出现以下端口绑定错误,请先停止或直接重启服务.

7.停止
sh /fs/stop.sh
8.重新启动
sh /fs/restart.sh; tail -f /fs/server.log
9.设置开机启动
chmod +x /etc/rc.local
vi /etc/rc.local
加入
sh /fs/start.sh
10.每天晚上3点自动重启
crontab -e
加入
0 3 * * *  sh /fs/restart.sh


客户端
1.安装libpcap,
sudo apt-get -y install libpcap-dev
2.安装java运行环境
3.下载

http://fs.d1sm.net/finalspeed/finalspeed_client1.2.zip
4.运行
sudo java -jar finalspeed_client.jar
前面加sudo,因为必须以root权限运行,如果没有root权限,会无法启用tcp协议.




posted @ 2016-05-24 15:51 天宇恒星 阅读(85) | 评论 (0)编辑 收藏

2016年5月1日 #

1. pptpd vpn
#1.从github上下载shell脚本
root@wys:~# cd /tmp
root@wys:/tmp# wget --no-check-certificate https://raw.github.com/viljoviitanen/setup-simple-pptp-vpn/master/setup.sh

#2.执行

root@wys:/tmp# sudo sh setup.sh 

#3.设置密码               

root@wys:/tmp# vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses

username pptpd password *

#4.重启vpn服务
root@wys:/tmp# service pptpd restart
 * Restarting PoPToP Point to Point Tunneling Server pptpd

#5.到了第4步应该能连接上VPN了,如果无法访问外网,执行下面的命令添加NAT规则 
root@wys:/tmp# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 服务器IP地址
  
#6.重启服务

root@wys:/tmp# service pptpd restart
 * Restarting PoPToP Point to Point Tunneling Server pptpd                                                                                        [ OK ] 
root@wys:/tmp# 

2. l2tp vpn
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
chmod +x l2tp.sh
./l2tp.sh
ipsec status (查看 IPSec 运行状态)
ipsec verify (查看 IPSec 检查结果)
/etc/init.d/ipsec start|stop|restart|status (CentOS6 下使用)
/etc/init.d/xl2tpd start|stop|restart|status (CentOS6 下使用)
systemctl start|stop|restart|status ipsec (CentOS7 下使用)
systemctl start|stop|restart|status xl2tpd (CentOS7 下使用)
service ipsec start|stop|restart|status (Debian/Ubuntu 下使用)
service xl2tpd start|stop|restart|status (Debian/Ubuntu 下使用)

2. shadowsocks 安装
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log


posted @ 2016-05-01 11:28 天宇恒星 阅读(160) | 评论 (0)编辑 收藏

2016年3月5日 #

1) 已经添加到service中的程序
chkconfig name on

2)其他使用命令启动的程序
在/etc/rc.local中加入:
sudo su - username -c "cd /www/jetty8.1/bin/ && sh jetty.sh start &"
posted @ 2016-03-05 11:23 天宇恒星 阅读(61) | 评论 (0)编辑 收藏

2015年12月26日 #

修改httpd文件
vim /etc/httpd/conf/httpd.conf

ErrorLog logs/error_log
CustomLog logs/access_log common
将其改为 
ErrorLog "| /usr/local/apache/bin/rotatelogs /data/www/apache_logs/error_%Y%m%d.log 86400 480"
CustomLog "| /usr/local/apache/bin/rotatelogs /data/www/apache_logs/access_%Y%m%d.log 86400 480" common
posted @ 2015-12-26 14:43 天宇恒星 阅读(66) | 评论 (0)编辑 收藏

2015年12月18日 #

使用:
(Boolean) invokeMethod(LockPatternUtils.class, mLockutils,
                    "savedPasswordExists", new Class[] {int.class}, new Object[] {UserHandle.myUserId()});

(Boolean) invokeMethod(LockPatternUtils.class, mLockutils, "checkPattern",
                    new Class[] {List.classint.class}, new Object[] {null, UserHandle.myUserId()});

方法实现:

    public static Method getMethod(Class<?> cls, String methodName, Class<?> parameterTypes) {
        try {
            return cls.getDeclaredMethod(methodName, parameterTypes);
        } catch (NoSuchMethodException e) {
            Log.e(TAG, "getMethod() Exception: ", e);
            try {
                return cls.getMethod(methodName, parameterTypes);
            } catch (NoSuchMethodException ex) {
                Log.e(TAG, "getMethod() Exception: ", ex);
                return null;
            }
        }
    }

    public static Object invokeStaticMethod(Class<?> cls, String methodName) {
        return invokeMethod(cls, null, methodName, nullnull);
    }

    public static Object invokeStaticMethod(Class<?> cls, String methodName, Class<?>[] parasTypes,
            Object[] parasObjs) {
        return invokeMethod(cls, null, methodName, parasTypes, parasObjs);
    }

    public static Object invokeMethod(Class<?> cls, Object obj, String methodName) {
        return invokeMethod(cls, obj, methodName, nullnull);
    }

    public static Object invokeMethod(Class<?> cls, Object obj, String methodName, Class<?>[] parasTypes,
            Object[] parasObjs) {
        Method method = getMethod(cls, methodName, parasTypes);
        try {
            if (method != null) {
                method.setAccessible(true);
                return method.invoke(obj, parasObjs);
            }
        } catch (Exception e) {
            Log.e(TAG, "invokeStaticMethod() Exception: ", e);
        }
        return null;
    }
    
posted @ 2015-12-18 09:42 天宇恒星| 编辑 收藏

仅列出标题  下一页